redis-py中的坑
今天发现,使用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需要注意一下。
参考资料:
Problem with hash get/set
redis-py中的坑的更多相关文章
- 分布式爬虫scrapy-redis中settings.py中的配置信息
SCHEDULER = "scrapy_redis.scheduler.Scheduler" # 使用scrapy-redis的调度器 ITEM_PIPELINES = { 'sc ...
- php安装扩展redis淌过的坑
php安装扩展redis淌过的坑 php扩展 redis cd /usr/local/src/ wget https://github.com/nicolasff/phpredis/archive/2 ...
- Torch-RNN运行过程中的坑 [2](Lua的string sub函数,读取中文失败,乱码?)
0.踩坑背景 仍然是torch-rnn/LanguageModel.lua文件中的一些问题,仍然是这个狗血的LM:encode_string函数: function LM:encode_string( ...
- linux上部署redis实现与Python上的redis交互(有坑)
1.概念 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件 2.linux安装redis 2.1yum源安装redis(不推荐) #前提得配置好阿里 ...
- 饿了么这样跳过Redis Cluster遇到的“坑”
内容来源:2017 年 8 月 12 日,饿了么高级Python工程师黄光星在“CRUG 2017北京活动”进行<Redis Cluster运维方案>演讲分享.IT 大咖说(微信id:it ...
- 决策树python建模中的坑 :ValueError: Expected 2D array, got 1D array instead:
决策树python建模中的坑 代码 #coding=utf-8 from sklearn.feature_extraction import DictVectorizerimport csvfrom ...
- python调用py中rar的路径问题。
1.python调用py,在py中的os.getcwd()获取的不是py的路径,可以通过os.path.split(os.path.realpath(__file__))[0]来获取py的路径. 2. ...
- Django 中 如何使用 settings.py 中的常量
在用django 框架开发 python web 程序的时候 , 在模板页面经常会用到 settings.py 中设置的常量,比如MEDIA_URL, 我尝试过在模板页面用类似如下的方式 程序代码 { ...
- PHP redis Api 中文文档
phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系 很有用;以下是redis官方提供的命令使用技巧: 下载地址如下: https://github.com/ow ...
- django访问sqlserver中的坑
首先不用说先安装django-sqlserver pip install django-sqlserver 然后在settings.py中修改'ENGINE': 'sqlserver_ado', ...
随机推荐
- python3(二十二) oop
""" 面向对象编程 """ __author__ = 'shaozhiqi' # 面向对象的程序设计把计算机程序视为一组对象的集合,而每个 ...
- 再探CI,Github调戏Action手记——自动构建并发布到另一仓库
前言 接上文初探CI,Github调戏Action手记--自动构建并发布 在学习了Action的基本操作之后 接着我们来探索Action其他可能的功能 众所周知 只有用得到的技术学习的才会最快 我也是 ...
- 项目中你不得不知的11个Java第三方类库
项目中你不得不知的11个Java第三方类库 博客分类: Java综合 JavaGoogle框架单元测试Hibernate Java第三方library ecosystem是一个很广阔的范畴.不久前有人 ...
- vscode连接云服务,搭建Python远程开发
配置Python远程开发环境前提 配置步骤 1.windows 10 开发机配置 win10 1809后支持ssh ssh-keygen -t rsa -b 4096 #会显示生成到的目录C:\Use ...
- [转] Roguelike开发建议
该文所述的Roguelike为典型的Roguelike游戏,而非带着Roguelike元素的游戏. 以下内容为他在今年Roguelike开发者大会上的发言文字版. 引言 几年前召开的首届Rogueli ...
- 基于 Redis 的订阅与发布
Github 仓库 demo-redis-subscribe 创建项目 $ composer create hyperf/biz-skeleton demo-redis-subscribe dev-m ...
- 三分钟教会你Python数据分析—数据导入,小白基础入门必看内容
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:小白 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行 ...
- Persona & User Scenario
Persona: Tom:男,21岁,大学生,周末经常和同学们一起出去吃饭.唱歌.打球.郊游,期间会时不时拍一些照片以作纪念,长期积累的照片数量较多且内容繁杂,很少对照片进行整理: Alisa:女,2 ...
- O - Navigation System CodeForces - 1321D
题目大意:有一个导航系统,会根据你当前的位置,规划到目的地的最短路线,给你一个有向图,和一条行驶路径,问你导航重新规划路径的最大次数和最小次数. 读题的时候题意特别不理解,何为最大次数,何为最小次数? ...
- Gatling脚本编写技巧篇(二)
脚本示例: import io.gatling.core.Predef._ import io.gatling.http.Predef._ import scala.concurrent.durati ...