Redis
 sql >> Base de données >  >> NoSQL >> Redis

redis-py :Quelle est la différence entre StrictRedis() et Redis() ?

EDIT :Ils sont désormais équivalents :

redis-py 3.0 supprime la prise en charge de l'ancienne classe client "Redis". "StrictRedis" a été renommé "Redis" et un alias nommé "StrictRedis" est fourni afin que les utilisateurs utilisant précédemment "StrictRedis" puissent continuer à fonctionner sans changement.

Réponse originale :Cela semble assez clair :

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

et

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

Avez-vous besoin d'une rétrocompatibilité ? Utiliser Redis . Ça ne vous dérange pas ? Utilisez StrictRedis .

2017-03-31

Voici les spécificités de la rétrocompatibilité, à partir du lien github.com cité :

En plus des modifications ci-dessus, la classe Redis, une sous-classe de StrictRedis, remplace plusieurs autres commandes pour fournir une rétrocompatibilité avec les anciennes versions de redis-py :

LREM :Ordre des arguments 'num' et 'value' inversé de sorte que 'num' puisse fournir une valeur par défaut de zéro.

ZADD :Redis spécifie l'argument 'score' avant 'value'. Ceux-ci ont été échangés accidentellement lors de leur mise en œuvre et n'ont été découverts qu'après que les gens l'utilisaient déjà. La classe Redis attend des *args sous la forme :nom1, score1, nom2, score2, ...

SETEX :Ordre des arguments 'temps' et 'valeur' ​​inversé.