最为高效的键值对存储数据库,redis应用广泛,各大主流的编程语言对其的支持都很好。今天来说说,接触过程的小坑。
1、响应格式均为byte
在使用Python3进行redis数据库操作时,发现存进redis的数据,取出时不管是key 、各种value 格式均是byte 。这很让人难受,不过查看官方文档后,发现其中的redis 模块中的Redis()(包括StrictRedis())方法,其中的decode_responses
参数默认为False 。只须在生成类的方法参数中将其设置为True即可。
redis.StrictRedis(host=db_host, port=db_port, password=db_password, decode_responses=True)
2、关于Redis、StrictRedis两个类
两者都是用于实现Redis命令的,只不过官方文档中说明Redis类是向后兼容旧版本的。听起来没什么大不了的差别好像。。
不过其实两者的差别还是有的,使用时官方推荐StrictRedis。
差别有如下:
- LREM:参数 ‘num’ 和 ‘value’ 的顺序交换了一下,cli是 lrem queueName 0 ‘string’ 。 这里的0时所有的意思。 但是Redis这个类,把控制和string调换了。
- ZADD:实现时 score 和 value 的顺序不小心弄反了,后来有人用了,就这样了
- SETEX: time 和 value 的顺序反了
3、这个也不算坑,一个小记
编译安装Lua环境时,碰到一个报错。面向搜索引擎解决问题后找到出错点
sudo apt-get install libreadline-dev
———————————-Fighting———————————