2013-08-27 42 views
5

我正在使用redis-py並希望使用-inf和inf與ZRANGEBYSCORE。我試圖用inf和string的字符串和浮點數來執行此操作,但那些返回一個空集。我怎樣才能做到這一點?如何將python中的無窮大傳遞給redis?

編輯

我試圖做下面的命令:

redis.StrictRedis.ZRANGEBYSCORE("SORTEDSET", "-inf", "inf") 

redis.StrictRedis.ZRANGEBYSCORE("SORTEDSET", float("-inf"), float("inf")) 

UPDATE 是我的zrangebyscore抽象用zrange錯誤我的錯誤... inf如下所述工作。

+0

您可以發佈你試過代碼段,只是一個命令? – blakev

+0

張貼樣品 – postelrich

回答

8

這是我的代碼已經過測試:

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']) 
+0

以上它是有用的謝謝,我的抽象是錯誤地使用zrange。 – postelrich