问题:redis-py:StrictRedis()和Redis()有什么区别?
我想使用Redis的-PY缓存一些数据,但我无法找到之间的差异的一个合适的解释redis.StrictRedis()
和redis.Redis()
。它们相等吗?
另外,redis.StrictRedis()
在Redis Python Docs中找不到关于的参数的任何清晰文档。任何想法?
回答 0
redis-py exposes two client classes that implement these commands
The StrictRedis class attempts to adhere to the official command syntax.
和
In addition to the changes above, the Redis class, a subclass of StrictRedis,
overrides several other commands to provide backwards compatibility with older
versions of redis-py
您需要向后兼容吗?使用Redis
。不在乎吗 使用StrictRedis
。
2017-03-31
以下是从github.com链接引用的向后兼容性的详细信息:
除了上述更改之外,Redis类是StrictRedis的子类,它重写了其他一些命令以提供与较早版本的redis-py的向后兼容性:
LREM:“ num”和“ value”参数的顺序颠倒,因此“ num”可以提供默认值零。
ZADD:Redis在’value’之前指定’score’参数。这些在实施时被意外交换,直到人们使用后才发现。Redis类期望* args的形式为:name1,score1,name2,score2,…
SETEX:“时间”和“值”参数的顺序颠倒了。
回答 1
这是一个古老的问题,但对于在Google搜索后遇到此问题的任何人:
从redis-py自述文件(链接):
redis-py 3.0放弃了对旧版“ Redis”客户端类的支持。“ StrictRedis”已重命名为“ Redis”,并提供了一个名为“ StrictRedis”的别名,以便以前使用“ StrictRedis”的用户可以继续运行。
这是定义StrictRedis
(link)的redis-py代码的代码:
StrictRedis = Redis