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

问题描述 投票:77回答:2

我想用redis-py来缓存一些数据,但我找不到合适的解释redis.StrictRedis()redis.Redis()之间的区别。它们是等价的吗?

另外,我找不到任何关于redis.StrictRedis()Redis Python Docs中的论点的明确文档。任何的想法?

python redis
2个回答
117
投票

This seems pretty clear

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



10
投票

这是旧问题,但对于搜索后达到此问题的任何人:

来自redis-py自述文件:

redis-py 3.0支持旧版“Redis”客户端类。 “StrictRedis”已重命名为“Redis”,并且提供了名为“StrictRedis”的别名,以便之前使用“StrictRedis”的用户可以继续保持不变。

这是redis-py代码中定义StrictRedis的行

StrictRedis = Redis
© www.soinside.com 2019 - 2024. All rights reserved.