web-dev-qa-db-ja.com

pythonを使用してredisでZADD(sorted set)を使用してデータを挿入できない

pythonを使用して範囲などの複雑なクエリを実行するために、redisのソートされたセットにデータを挿入したいと思います。

import redis
redisClient = redis.StrictRedis(Host='localhost', port=6379,db=0)

redisClient.zadd("players",1,"rishu")

しかし、上記のコードを実行すると、次のエラーが発生します

AttributeError: 'str' object has no attribute 'items'

私はここで何が間違っていますか。このリンクを参考に使用しました https://pythontic.com/database/redis/sorted%20set%20-%20add%20and%20remove%20elements

8

@divyanayan awasthiは答えました:

rediscleint.execute_command('ZADD', "rishu", 1, "123")

生のクエリを実行できます。

詳細説明:

Redis-cliで

_>>> zadd rishu nx  1 "123"
# sorted set key = rishu 
# nx = new item 
# score = 1
# member = "123"
_

pythonのコマンドは

rediscleint.execute_command('ZADD', "rishu",'nx' 1, "123")

上記のコードでは、zaddコマンドに新しい引数を追加しましたnx(新しい項目を追加)。ソート済みセットのメンバーを更新する場合は、nxの代わりに「xx」を渡します。

execute_commandでは、コンマで区切られた同じredisコマンドを実行できます。

以下も参照してください:

Redisソートセットコマンド