sql >> Databasteknik >  >> NoSQL >> Redis

redis-py :Vad är skillnaden mellan StrictRedis() och Redis()?

EDIT:De är nu likvärdiga:

redis-py 3.0 tar bort stödet för den äldre "Redis"-klientklassen."StrictRedis" har bytt namn till "Redis" och ett alias med namnet "StrictRedis" tillhandahålls så att användare som tidigare använt "StrictRedis" kan fortsätta att köra oförändrat.

Ursprungligt svar:Detta verkar ganska tydligt:

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

och

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

Behöver du bakåtkompatibilitet? Använd Redis . Bryr du dig inte? Använd StrictRedis .

2017-03-31

Här är detaljerna för bakåtkompatibiliteten, från github.com-länken som citeras:

Utöver ändringarna ovan åsidosätter Redis-klassen, en underklass till StrictRedis, flera andra kommandon för att ge bakåtkompatibilitet med äldre versioner av redis-py:

LREM:Ordningsföljden för 'num' och 'value'-argumenten omvänd så att 'num' kan ge ett standardvärde på noll.

ZADD:Redis specificerar 'poäng'-argumentet före 'värde'. Dessa byttes ut av misstag när de implementerades och upptäcktes inte förrän efter att folk redan använt dem. Redis-klassen förväntar sig *args i form av:namn1, poäng1, namn2, poäng2, ...

SETEX:Ordningsföljden för 'tid' och 'värde' argument omvänd.



  1. Redis som meddelandeförmedlare

  2. Finns det något sätt att atomiskt uppdatera två samlingar i MongoDB?

  3. MongoDB, MapReduce och sortering

  4. Redis - Befordra en slav till master manuellt