博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis-py中的坑
阅读量:5905 次
发布时间:2019-06-19

本文共 1930 字,大约阅读时间需要 6 分钟。

今天发现,使用redis-py从redis中获取的数据竟然是加密的。

conn = redis.Redis(host='redis_serverip', port=6379, password='redis_password', db=0)conn.set('string-key1', 'value1')result = conn.get('string-key1')print('result:', result)print('result type:', type(result))print()result_decoded = result.decode('utf-8')print('result_decoded:', result_decoded)print('result_decoded type:', type(result_decoded))print()result_str = str(result)print('result_str:', result_str)print('result_str type:', type(result_str))print()print('test int in redis...\n')conn.set('string-key2', 100)result = conn.get('string-key2')print('result:', result)print('result type:', type(result))print()result_decoded = int(result)print('result_decoded:', result_decoded)print('result_decoded type:', type(result_decoded))

输出:

result: b'value1'

result type: <class 'bytes'>

result_decoded: value1

result_decoded type: <class 'str'>

result_str: b'value1'

result_str type: <class 'str'>

test int in redis...

result: b'100'

result type: <class 'bytes'>

result_decoded: 100

result_decoded type: <class 'int'>

 

可以看出:

如果传入str,传出的是bytes,需要通过decode('utf-8')进行恢复。

如果传入int,传出的是bytes,需要通过int()进行恢复。

 

另一种解决办法是在创建redis client时,进行decode设置。

conn = redis.Redis(host='redis_serverip', port=6379, password='redis_password', db=0, decode_responses=True)conn.set('string-key3', 'value3')result = conn.get('string-key3')print('result:', result)print('result type:', type(result))print()print('test int in redis...\n')conn.set('string-key4', 100)result = conn.get('string-key4')print('result:', result)print('result type:', type(result))print()result_decoded = int(result)print('result_decoded:', result_decoded)print('result_decoded type:', type(result_decoded))

输出:

result: value3

result type: <class 'str'>

test int in redis...

result: 100

result type: <class 'str'>

result_decoded: 100

result_decoded type: <class 'int'>

这种情况下,str是正常的,int需要注意一下。

 

参考资料:

转载于:https://www.cnblogs.com/gattaca/p/7347972.html

你可能感兴趣的文章
LCD12864使用总结
查看>>
wireshark简明教程
查看>>
EditPlus配置Java编译器
查看>>
app已损坏,打不开。你应该将它移到废纸篓
查看>>
Switchover and Failover说明
查看>>
linux 环境RPM 安装MYSQL5.6
查看>>
Linux文件管理和编辑常用命令
查看>>
bluz-5.47 蓝牙
查看>>
C++ 读写文件
查看>>
海外旅游最常用的100句英语口语
查看>>
http协议进阶(五)连接管理
查看>>
服务器创建好后怎样使用远程连接工具链接的一些问题
查看>>
插件~NuGet与packages管理项目的包包
查看>>
笔试算法题(34):从数字序列中寻找仅出现一次的数字 & 最大公约数(GCD)问题...
查看>>
JS基本功 | JavaScript专题之数组 - 方法总结
查看>>
matlab数字图像处理函数,MATLAB数字图像处理学习(二)|常用函数
查看>>
错误请联系管理员文件 index.php,帝国CMS订单、反馈信息、投稿与留言发邮件通知管理员的方法...
查看>>
小米笔记本装linux教程视频教程,Archlinux安装指南~小米笔记本Air 13.3英寸版本
查看>>
linux卸载nomachine,NoMachine 安装与配置及使用
查看>>
企业shell常见面试题及企业实战案例深入浅出讲解
查看>>