如何从python将无限传递给redis?

pos*_*ich 5 python range infinity sortedset redis

我正在使用redis-py,并希望使用-inf和inf与ZRANGEBYSCORE.我尝试使用字符串和浮动的inf来做这个,但那些返回一个空集.我怎样才能做到这一点?

编辑

我尝试执行以下命令:

redis.StrictRedis.ZRANGEBYSCORE("SORTEDSET", "-inf", "inf")  
Run Code Online (Sandbox Code Playgroud)

要么

redis.StrictRedis.ZRANGEBYSCORE("SORTEDSET", float("-inf"), float("inf"))
Run Code Online (Sandbox Code Playgroud)

更新 我的错误是我对zrangebyscore的抽象错误地使用了zrange ... inf如下所述.

小智 11

这是我的代码已经过测试:

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