redis+mysql+hash組合使用


'''
    用戶想要查詢個人信息 
    1、到redis緩存中查詢個人信息 
    2、redis中查詢不到,到mysql查詢,並緩存到redis 
    3、再次查詢個人信息
'''

import redis
import pymysql

# 用戶從終端輸入要查詢的用戶:zhang
username = input('請輸入用戶名:')

# key       field       value
# username  gender      M
#           age         29

r = redis.Redis(host='127.0.0.1', port=6379, db=0, password='123456')
# 從redis查詢(gender age)
# 如果查到,則直接打印
result = r.hgetall(username)
print(result)
if result:
    print('redis數據:', result)
else:
    # 如果沒有查到,則從mysql中查詢,並將其加入redis緩存,同時設置過期時間5分鍾
    db = pymysql.connect('localhost', 'root', '123456', 'userdb', charset='utf8')
    cursor = db.cursor()
    sel = 'select gender,age from user where username=%s'
    cursor.execute(sel,[username])
    res = cursor.fetchall()
    if not res:
        print('Mysql中無此用戶')
    else:
        print('Mysql中查詢到的結果:',res)
        r.hmset(username,{'gender':res[0][0],'age':res[0][1]})
        r.expire(username,60*5)

 

 

'''
    mysql數據庫中數據更新信息后同步到redis緩存
'''

import redis
import pymysql

# 用戶從終端輸入要查詢的用戶:yuxiangyang
username = input('請輸入用戶名:')
age = input('請輸入新的年齡:')


r = redis.Redis(host='127.0.0.1', port=6379, db=0)

# 改mysql數據庫
db = pymysql.connect('localhost', 'root', '123456', 'userdb', charset='utf8')
cursor = db.cursor()
sel = 'update user set age=%s where username=%s'
cursor.execute(sel,[age,username])
db.commit()
# 同步到redis緩存中
r.hset(username,'age',age)
r.expire(username,60*2)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM