1. ホーム
  2. python

[解決済み] redis-py : StrictRedis()とRedis()の違いって何?

2022-05-26 09:57:50

質問

私は redis-py を使いたいのですが、この2つの違いについて適切な説明が見当たりません。 redis.StrictRedis()redis.Redis() . これらは等価なのでしょうか?

に関する明確なドキュメントが見当たりません。 redis.StrictRedis() の引数は Redis Python Docs . 何か心当たりはありますか?

どのように解決するのですか?

EDIT: 両者は同等になりました。

redis-py 3.0 は従来の "Redis" クライアントクラスのサポートをやめました。 "StrictRedis" は "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: 'time' と 'value' の引数の順序が逆になっています。