我想使用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

最佳答案

@TheDude快要关闭了。

来自(redis-py 3.0)的较新版本的redis,方法签名已更改。
除了ZADD,MSET和MSETNX签名也已更改。

旧的签名是:

data = "hello world"
score = 1
redis.zadd("redis_key_name", data, score) # not used in redis-py > 3.0

新的签名是:
data = "hello world"
score = 1

redis.zadd("redis_key_name", {data: score})

一次添加多个:
data1 = "foo"
score1 = 10

data2 = "bar"
score2 = 20

redis.zadd("redis_key_name", {data1: score1, data2: score2})

而不是args / kwargs,应该是一个dict,以key作为数据,值是ZADD得分。
取回数据没有任何变化。

08-27 18:30