2016-12-08 23 views
1

我在Redis中使用了有序集合。如何读取分区的排序集?

排序集中数据的常见值超过100万。我怎样才能通过分区读取这个有序集合?我的意思是前100000行和以下?

只有一个命令来获取数据:smembers set

回答

2

您可以在有序集合使用ZRANGE命令并指定启动和停止拿到10万项,然后100,001至200,000下一ZRANGE

ZRANGE documentation on Redis.io

你提到使用smembers set取数据,但只使用非排序集。如果您实际使用的是非排序集合,那么您需要使用SPOP并将您的计数定义为100,000。但是,这会同时删除所有这些条目。

SPOP documentation on Redis.io

+0

谢谢,但我怎么能做到这一点与简单的'集'没有排序? – Griboedov

0

您可以通过使用增量的SSCAN未排序的集合中的元素进行迭代。从光标0开始,并在随后的调用中使用返回的光标,直到再次返回0

pantalones:6379> SSCAN five-characters 0 COUNT 3 
    1) "7" 
    2) 1) "d" 
     2) "e" 
     3) "a" 
     4) "c" 
pantalones:6379> SSCAN five-characters 7 COUNT 3 
    1) "0" 
    2) 1) "b" 

在这个例子中,为了SSCAN的第一个调用返回一个光标的7,然后将其提供给第二呼叫到SSCAN。第二次调用返回0的游标,所以我们知道迭代已完成。

请参阅SSCAN documentation on Redis.io