2016-12-08 22 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