redis-py:StrictRedis()和Redis()有什么区别?


103

我想使用Redis的-PY缓存一些数据,但我无法找到之间的差异的一个合适的解释redis.StrictRedis()redis.Redis()。它们相等吗?

另外,redis.StrictRedis()Redis Python Docs中找不到关于的参数的任何清晰文档。任何想法?

Answers:


142

这似乎很清楚

 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:“时间”和“值”参数的顺序颠倒了。



39

这是一个古老的问题,但对于在Google搜索后遇到此问题的任何人:

从redis-py自述文件(链接):

redis-py 3.0放弃了对旧版“ Redis”客户端类的支持。“ StrictRedis”已重命名为“ Redis”,并提供了一个名为“ StrictRedis”的别名,以便以前使用“ StrictRedis”的用户可以继续运行。

这是定义StrictRedislink)的redis-py代码的代码:

StrictRedis = Redis
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.