我正在使用redis-py并且希望在ZRANGEBYSCORE中使用-inf和inf。我尝试使用字符串和浮动的inf来做这个,但那些返回一个空集。我怎么能这样做?
修改
我尝试执行以下命令:
redis.StrictRedis.ZRANGEBYSCORE("SORTEDSET", "-inf", "inf")
或
redis.StrictRedis.ZRANGEBYSCORE("SORTEDSET", float("-inf"), float("inf"))
更新 我的错误是我对zrangebyscore的抽象错误地使用了zrange ... inf如下所述。
答案 0 :(得分:9)
这是我的代码已经过测试:
import unittest
from redis import Redis
class RedisTest(unittest.TestCase):
def setUp(self):
self.redis = Redis()
def test_zrangebyscore(self):
r = self.redis
name = 'myset'
r.zadd(name, 'one', 1)
r.zadd(name, 'two', 2)
r.zadd(name, 'three', 3)
r.zadd(name, 'four', 4)
self.assertTrue(r.zrangebyscore(name, '-inf', '+inf') == ['one', 'two', 'three', 'four'])
self.assertTrue(r.zrangebyscore(name, 1, 1) == ['one'])
self.assertTrue(r.zrangebyscore(name, 1, 2) == ['one', 'two'])
self.assertTrue(r.zrangebyscore(name, 2, 3) == ['two', 'three'])
self.assertTrue(r.zrangebyscore(name, '(1', '(2') == [])
self.assertTrue(r.zrangebyscore(name, '(1', '(3') == ['two'])