一部のデータをキャッシュするためにredis-pyを使用したいのですが、redis.StrictRedis()
の違いの適切な説明が見つかりませんおよびredis.Redis()
。それらは同等ですか?
また、 Redis Python Docs 。にredis.StrictRedis()
の引数に関する明確なドキュメントが見つかりません。
redis-py exposes two client classes that implement these commands
The StrictRedis class attempts to adhere to the official command syntax.
そして
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
後方互換性が必要ですか? Redis
を使用します。どうでもいい? StrictRedis
を使用します。
2017-03-31
以下は、引用されたgithub.comリンクからの後方互換性の詳細です。
上記の変更に加えて、StrictRedisのサブクラスであるRedisクラスは、他のいくつかのコマンドをオーバーライドして、古いバージョンのredis-pyとの後方互換性を提供します。
LREM:「num」と「value」引数の順序が逆になり、「num」がデフォルト値のゼロを提供できるようになりました。
ZADD:Redisは、 'value'の前に 'score'引数を指定します。これらは実装時に誤って交換され、人々がすでに使用するまで発見されませんでした。 Redisクラスでは、name1、score1、name2、score2、...の形式の* argsが必要です。
SETEX:「時間」引数と「値」引数の順序が逆になりました。
これは古い質問ですが、Google検索の後にこの質問に到達した人にとっては:
redis-py readmeから:
redis-py 3.0では、従来の「Redis」クライアントクラスのサポートが廃止されました。 「StrictRedis」は「Redis」に名前が変更され、「StrictRedis」という名前のエイリアスが提供されるため、以前に「StrictRedis」を使用していたユーザーはそのまま実行できます。
以下は、StrictRedis
を定義するredis-pyコードの行です。
StrictRedis = Redis