redis-py:StrictRedis()とRedis()の違いは何ですか?


103

私が使用したいのRedis-PYをいくつかのデータをキャッシュするため、私は違いの適切な解説見つけることができないredis.StrictRedis()としますredis.Redis()。それらは同等ですか?

さらに、私はについての明確なドキュメントを見つけることができません redis.StrictRedis() Redis Python Docsのの引数。何か案が?

回答:


142

これはかなりはっきりしているようです

 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は「値」の前に「スコア」引数を指定します。これらは実装時に誤って入れ替えられ、人々がすでに使用するまでは発見されませんでした。Redisクラスは、name1、score1、name2、score2、...の形式の* argsを予期します。

SETEX:「時間」と「値」の引数の順序が逆になりました。



39

それは古い質問ですが、グーグル検索後にこの質問に到達した人のために:

redis-py readmeから(リンク):

redis-py 3.0では、従来の「Redis」クライアントクラスのサポートを終了しました。「StrictRedis」は「Redis」に名前が変更され、「StrictRedis」というエイリアスが提供されているため、以前に「StrictRedis」を使用していたユーザーは変更せずに引き続き実行できます。

StrictRedislink)を定義するredis-pyコードの行は次のとおりです。

StrictRedis = Redis
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.