redis-py: Was ist der Unterschied zwischen StrictRedis () und Redis ()?

103

Ich möchte redis-py zum Zwischenspeichern einiger Daten verwenden, kann jedoch keine geeignete Erklärung für den Unterschied zwischen redis.StrictRedis()und finden redis.Redis(). Sind sie gleichwertig?

Außerdem kann ich redis.StrictRedis()in Redis Python Docs keine eindeutige Dokumentation zu den Argumenten finden . Irgendeine Idee?

Abs
quelle

Antworten:

142

Das scheint ziemlich klar zu sein :

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

und

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

Benötigen Sie Abwärtskompatibilität? Verwenden Sie Redis. Ist es dir egal? Verwenden Sie StrictRedis.


2017-03-31

Hier sind die Besonderheiten der Abwärtskompatibilität unter dem angegebenen Link github.com:

Zusätzlich zu den oben genannten Änderungen überschreibt die Redis-Klasse, eine Unterklasse von StrictRedis, mehrere andere Befehle, um die Abwärtskompatibilität mit älteren Versionen von redis-py zu gewährleisten:

LREM: Die Reihenfolge der Argumente 'num' und 'value' wurde umgekehrt, sodass 'num' einen Standardwert von Null liefern kann.

ZADD: Redis gibt das Argument 'score' vor 'value' an. Diese wurden bei der Implementierung versehentlich ausgetauscht und erst entdeckt, nachdem die Benutzer sie bereits verwendet hatten. Die Redis-Klasse erwartet * Argumente in Form von: name1, score1, name2, score2, ...

SETEX: Reihenfolge der Argumente 'Zeit' und 'Wert' umgekehrt.


hughdbrown
quelle
39

Es ist eine alte Frage, aber für alle, die diese Frage nach der Google-Suche erreichen:

von redis-py readme ( link ):

redis-py 3.0 stellt die Unterstützung für die ältere Clientklasse "Redis" ein. "StrictRedis" wurde in "Redis" umbenannt und ein Alias ​​mit dem Namen "StrictRedis" wird bereitgestellt, damit Benutzer, die zuvor "StrictRedis" verwendet haben, weiterhin unverändert ausgeführt werden können.

Hier ist die Zeile aus dem Redispy-Code, die StrictRedis( Link ) definiert :

StrictRedis = Redis
Aliva
quelle