2013-08-27 27 views
5

Używam redis-py i chcę używać -inf i inf z ZRANGEBYSCORE. Próbowałem to zrobić za pomocą łańcucha i float of inf, ale te zwracają pusty zestaw. Jak mogę to zrobić?Jak mogę przekazać nieskończoność do redis z Pythona?

EDIT

Próbowałem robić następujące polecenie:

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

lub

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

UPDATE Mój błąd, że mój abstrakcji dla zrangebyscore używał zrange przez pomyłkę ... inf działa zgodnie z opisem poniżej.

+0

można zakładać segment kodu ty próbował, tylko jedno polecenie? – blakev

+0

wysłał próbkę powyżej – postelrich

Odpowiedz

8

To jest mój kod został przetestowany:

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

tak działa dzięki, moja abstrakcja używała pomyłkowo przez pomyłkę. – postelrich

Powiązane problemy