Redis
 sql >> Datenbank >  >> NoSQL >> Redis

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

EDIT:Sie sind jetzt gleichwertig:

redis-py 3.0 stellt die Unterstützung für die ältere Client-Klasse „Redis“ ein. „StrictRedis“ wurde in „Redis“ umbenannt, und ein Alias ​​namens „StrictRedis“ wird bereitgestellt, sodass Benutzer, die zuvor „StrictRedis“ verwendet haben, unverändert weiterlaufen können.

Ursprüngliche Antwort: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 dir egal? Verwenden Sie StrictRedis .

2017-03-31

Hier sind die Einzelheiten der Abwärtskompatibilität aus dem zitierten github.com-Link:

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

LREM:Reihenfolge der 'num'- und 'value'-Argumente umgekehrt, sodass 'num' einen Standardwert von 0 liefern kann.

ZADD:Redis gibt das Argument „score“ vor „value“ an. Diese wurden bei der Implementierung versehentlich vertauscht und erst entdeckt, nachdem die Leute sie bereits benutzt hatten. Die Redis-Klasse erwartet *args in Form von:name1, score1, name2, score2, ...

SETEX:Reihenfolge der 'Zeit'- und 'Wert'-Argumente vertauscht.