redis-py: Qual é a diferença entre StrictRedis () e Redis ()?

103

Eu quero usar redis-py para armazenar alguns dados em cache, mas não consigo encontrar uma explicação adequada para a diferença entre redis.StrictRedis()e redis.Redis(). Eles são equivalentes?

Além disso, não consigo encontrar nenhuma documentação clara sobre redis.StrictRedis()os argumentos de no Redis Python Docs . Qualquer ideia?

abdômen
fonte

Respostas:

142

Isso parece muito claro :

 redis-py exposes two client classes that implement these commands
 The StrictRedis class attempts to adhere to the official command syntax.

e

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

Você precisa de compatibilidade com versões anteriores? Use Redis. Não se importa? Use StrictRedis.


31-03-2017

Aqui estão as especificações da compatibilidade com versões anteriores, do link github.com citado:

Além das mudanças acima, a classe Redis, uma subclasse de StrictRedis, substitui vários outros comandos para fornecer compatibilidade com versões anteriores de redis-py:

LREM: Ordem dos argumentos 'num' e 'valor' invertida de forma que 'num' pode fornecer um valor padrão de zero.

ZADD: Redis especifica o argumento 'pontuação' antes de 'valor'. Eles foram trocados acidentalmente ao serem implementados e não foram descobertos até que as pessoas já os estivessem usando. A classe Redis espera * argumentos na forma de: nome1, pontuação1, nome2, pontuação2, ...

SETEX: Ordem dos argumentos 'tempo' e 'valor' invertida.


Hughdbrown
fonte
39

É uma pergunta antiga, mas para quem chegar a esta pergunta após a pesquisa no Google:

do leia-me redis-py ( link ):

O redis-py 3.0 descarta o suporte para a classe de cliente "Redis" legada. "StrictRedis" foi renomeado para "Redis" e um alias chamado "StrictRedis" é fornecido para que os usuários que usavam "StrictRedis" possam continuar a executar sem alterações.

Aqui está a linha do código redis-py que define StrictRedis( link ):

StrictRedis = Redis
Aliva
fonte