今天在做验证码时,前端数据始终与redis数据对不上号,后面发现原因在于在python中从Redis取出的Sting都变成bytes格式。
import redis
"""
连接Redis测试
"""
if __name__=="__main__":
try:
redis_store = redis.StrictRedis(host='127.0.0.1', port=6379)
result = redis_store.set('name', 'wenwen')
# 添加成功则返回true
print(result)
get_values = redis_store.get('name')
print(get_values)
except Exception as e:
print(e)
从上面可以看出,在redis中取是string,而在python3中取是b'wenwen',因为类型不同,所以做if判断时一直失败。
解决方法:
# 加上decode_responses=True即可解决
redis_store = redis.StrictRedis(host='127.0.0.1', port=6379, decode_responses=True)