redis-py: в чем разница между StrictRedis() и Redis()?


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

кроме того, я не могу найти четкой документации о Redis.StrictRedis () аргументы в Redis Python Docs Есть идеи?

1 64

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

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

SETEX: порядок "времени" и "значение" аргументы вспять.