我正在使用redis-py,并希望将- inf和inf与ZRANGEBYSCORE一起使用。我试图使用inf的字符串和浮点数来执行此操作,但是它们返回一个空集。我怎样才能做到这一点?
编辑
我尝试执行以下命令:
redis.StrictRedis.ZRANGEBYSCORE("SORTEDSET", "-inf", "inf")
要么
redis.StrictRedis.ZRANGEBYSCORE("SORTEDSET", float("-inf"), float("inf"))
更新 我的错误是我对zrangebyscore的抽象错误地使用了zrange … inf的工作原理如下。
这是我的代码已经过测试:
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'])