我在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