Redis
 sql >> Database >  >> NoSQL >> Redis

redis-py :qual è la differenza tra StrictRedis() e Redis()?

EDIT:ora sono equivalenti:

redis-py 3.0 elimina il supporto per la classe client "Redis" legacy. "StrictRedis" è stato rinominato "Redis" e viene fornito un alias denominato "StrictRedis" in modo che gli utenti che utilizzavano in precedenza "StrictRedis" possano continuare a funzionare invariato.

Risposta originale:questo sembra abbastanza chiaro:

 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

Hai bisogno di compatibilità con le versioni precedenti? Usa Redis . Non importa? Usa StrictRedis .

31-03-2017

Ecco le specifiche della retrocompatibilità, dal link github.com citato:

Oltre alle modifiche precedenti, la classe Redis, una sottoclasse di StrictRedis, sovrascrive molti altri comandi per fornire la compatibilità con le versioni precedenti di redis-py:

LREM:ordine degli argomenti 'num' e 'value' invertito in modo tale che 'num' possa fornire un valore predefinito pari a zero.

ZADD:Redis specifica l'argomento 'punteggio' prima di 'valore'. Questi sono stati scambiati accidentalmente durante l'implementazione e non sono stati scoperti fino a quando le persone non lo stavano già utilizzando. La classe Redis si aspetta *args sotto forma di:nome1, punteggio1, nome2, punteggio2, ...

SETEX:ordine degli argomenti 'tempo' e 'valore' invertiti.