我试图在python rediscluster
(repo)中对排序集使用zpopmax
,但是下面非常简单的程序在AttributeError
中失败。你知道吗
问题:如何用rediscluster
实现zpopmax
?
如果它真的没有实现,我将不得不在事务中同时使用zrevrange
和zrem
,以确保线程安全。你知道吗
我注意到该命令在常规(非集群)redis-py中可用。我也看到了命令tested in the git repo,所以我可能错过了一些简单的东西。你知道吗
我还尝试了zpopmax
使用正则redis
并得到了相同的错误。你知道吗
我的reids-py-cluster是v1.3.6。我的redis-py是v2.10.6。我的actual Redis是v5.0.4
from rediscluster import StrictRedisCluster as s
rc = s(startup_nodes=[{'host': 'localhost', 'port': '7000'}],
decode_responses=True)
rc.zadd('my-set-name', 3, 'my-key-name')
# print to confirm zadd worked
print(rc.zrange('my-set-name', 0, -1, withscores=True))
# expecting this to print 'my-key-name'
print(rc.zpopmax('my-set-name')) # Attribute Error
我希望最后一个print语句的输出类似于'my key name',但是我得到了一个AttributeError
感谢您的帮助:)
版本!正如凯文的回答所记载的,版本是这里的问题。但是,我可以用这个设置来实现:
代码
感谢Kevin Christopher Henry的帮助。你知道吗
问题似乎是redispy在版本3.0中添加了support for ^{} ,而redispycluster1.3.6requires是redispy的旧版本。你知道吗
这里最简单的解决方案可能就是等待redis-py集群更新。这种固定所引起的问题已经acknowledged,下一个版本将add support用于redispy3.0。你知道吗
相关问题 更多 >
编程相关推荐