Redis接触过程的两个小坑

最为高效的键值对存储数据库,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———————————

觉得不错不妨打赏一笔