2013-08-27 27 views
5

Tôi đang sử dụng redis-py và muốn sử dụng-inf và inf với ZRANGEBYSCORE. Tôi đã cố gắng để làm điều này bằng cách sử dụng chuỗi và phao của inf nhưng những người trở lại một tập rỗng. Tôi có thể làm cái này như thế nào?làm thế nào tôi có thể vượt qua vô cùng để redis từ python?

EDIT

Tôi đã thử làm lệnh sau:

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

hoặc

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

CẬP NHẬT lỗi của tôi đã là trừu tượng của tôi cho zrangebyscore đã sử dụng zrange do nhầm lẫn ... inf hoạt động như đã nêu bên dưới.

+0

bạn có thể gửi đoạn mã bạn đã cố gắng, chỉ cần một lệnh? – blakev

+0

đăng mẫu ở trên – postelrich

Trả lời

8

này được mã của tôi đã được thử nghiệm:

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

yea nó hoạt động nhờ, trừu tượng của tôi đã sử dụng zrange do nhầm lẫn. – postelrich

Các vấn đề liên quan