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


103

Voglio usare redis-py per memorizzare nella cache alcuni dati, ma non riesco a trovare una spiegazione adeguata della differenza tra redis.StrictRedis()e redis.Redis(). Sono equivalenti?

Inoltre, non riesco a trovare alcuna documentazione chiara sugli redis.StrictRedis()argomenti di in Redis Python Docs . Qualche idea?

Risposte:


142

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 della retrocompatibilità? Usa Redis. Non importa? Usa StrictRedis.


2017/03/31

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 retrocompatibilità con le versioni precedenti di redis-py:

LREM: ordine degli argomenti "num" e "valore" 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 li stavano già utilizzando. La classe Redis prevede * arg nella forma di: nome1, punteggio1, nome2, punteggio2, ...

SETEX: ordine degli argomenti "time" e "value" invertito.



39

È una vecchia domanda, ma per chiunque raggiunga questa domanda dopo la ricerca su Google:

da redis-py readme ( link ):

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

Ecco la riga del codice redis-py che definisce StrictRedis( link ):

StrictRedis = Redis
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.