''' 用戶想要查詢個人信息 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)