我在Redis中使用了有序集合。如何读取分区的排序集?
排序集中数据的常见值超过100万。我怎样才能通过分区读取这个有序集合?我的意思是前100000行和以下?
只有一个命令来获取数据:smembers set
我在Redis中使用了有序集合。如何读取分区的排序集?
排序集中数据的常见值超过100万。我怎样才能通过分区读取这个有序集合?我的意思是前100000行和以下?
只有一个命令来获取数据:smembers set
您可以在有序集合使用ZRANGE
命令并指定启动和停止拿到10万项,然后100,001至200,000下一ZRANGE
。
ZRANGE documentation on Redis.io
你提到使用smembers set
取数据,但只使用非排序集。如果您实际使用的是非排序集合,那么您需要使用SPOP
并将您的计数定义为100,000。但是,这会同时删除所有这些条目。
您可以通过使用增量的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
的游标,所以我们知道迭代已完成。
谢谢,但我怎么能做到这一点与简单的'集'没有排序? – Griboedov