Redis-py: Какая разница между StrictRedis() и Redis()? - программирование
Подтвердить что ты не робот

Redis-py: Какая разница между StrictRedis() и Redis()?

Я хочу использовать redis-py для кэширования некоторых данных, но не могу найти подходящего объяснения разницы между redis.StrictRedis() и redis.Redis(). Они эквивалентны?

Кроме того, я не могу найти четкую документацию по аргументам redis.StrictRedis() в Документах Redis Python. Любая идея?

4b9b3361

Ответ 1

Это выглядит довольно ясно:

 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' может предоставить значение по умолчанию 0.

ZADD: Redis указывает аргумент "score" перед "value". Они были случайно заменены, когда они были реализованы и не были обнаружены до тех пор, пока люди уже не использовали ее. Класс Redis ожидает * args в виде: name1, score1, name2, score2,...

SETEX: аргументы "время" и "значение" отменены.


Ответ 2

Это старый вопрос, но для тех, кто достигает этого вопроса после поиска в Google:

из файла readme (ссылка):

Redis-Py 3.0 отказывается от поддержки устаревшего клиентского класса "Redis". "StrictRedis" был переименован в "Redis", а псевдоним назван "StrictRedis" предоставляется таким образом, чтобы пользователи, ранее использовавшие "StrictRedis" может продолжать работать без изменений.

Вот строка из кода Redis-Py, которая определяет StrictRedis (ссылка):

StrictRedis = Redis