无法使用python在Redis中使用ZADD(sorted set)插入数据

div*_*thi 5 python search redis

我想使用python将数据插入redis的排序集中,以执行诸如范围等的复杂查询。

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

redisClient.zadd("players",1,"rishu")
Run Code Online (Sandbox Code Playgroud)

但是当我运行上面的代码时,我得到以下错误

AttributeError: 'str' object has no attribute 'items'
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么。使用此链接作为参考 https://pythontic.com/database/redis/sorted%20set%20-%20add%20and%20remove%20elements

Nel*_*era 15

@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
Run Code Online (Sandbox Code Playgroud)

新的签名是:

data = "hello world"
score = 1 

redis.zadd("redis_key_name", {data: score})
Run Code Online (Sandbox Code Playgroud)

一次添加多个:

data1 = "foo"
score1 = 10

data2 = "bar"
score2 = 20

redis.zadd("redis_key_name", {data1: score1, data2: score2})
Run Code Online (Sandbox Code Playgroud)

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

  • 非常感谢尼尔森 (2认同)