redis-py : What's the difference between StrictRedis() and Redis()?

后端 未结 2 1531
小鲜肉
小鲜肉 2021-01-31 00:44

I want to use redis-py for caching some data, but I can\'t find a suitable explanation of the difference between redis.StrictRedis() and redis.Redis(

2条回答
  •  半阙折子戏
    2021-01-31 01:38

    This seems pretty clear:

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

    and

    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
    

    Do you need backwards compatibility? Use Redis. Don't care? Use StrictRedis.


    2017-03-31

    Here are the specifics of the backwards compatibility, from the github.com link cited:

    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:

    LREM: Order of 'num' and 'value' arguments reversed such that 'num' can provide a default value of zero.

    ZADD: Redis specifies the 'score' argument before 'value'. These were swapped accidentally when being implemented and not discovered until after people were already using it. The Redis class expects *args in the form of: name1, score1, name2, score2, ...

    SETEX: Order of 'time' and 'value' arguments reversed.


提交回复
热议问题