'''
用户想要查询个人信息
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)
转载于:https://www.cnblogs.com/yuxiangyang/p/11195190.html