簡體   English   中英

從給定的Redis集群中,我如何運行Redis CLI或API調用以獲取整個集群(而不僅僅是一台機器)上每個密鑰的列表?

[英]From a given Redis cluster, how can I run a Redis CLI or API call to get a list of EVERY key on that whole cluster, not just one machine?

這僅用於初始Redis設置。 顯然,在生產系統上,很難對整個多計算機數據庫進行轉儲。

我會接受任何語言的答案,盡管我更喜歡Python。

一個簡單的Redis CLI命令也可以使用。

Redis使用哨兵實現集群。

閱讀更多有關哨兵的信息-http: //redis.io/topics/sentinel

從終端使用redis-cli -h hostname -p port連接到redis實例。

運行KEYS *命令以獲取該Redis實例上的所有鍵。

KEYS命令將正則表達式作為參數(*為所有)。

如果您嘗試從代碼中訪問它,則可以使用各種模塊。 我已嘗試將Node-redis用於NodeJ。

但是在生產中,我不建議您使用KEYS命令,因為這需要花費大量時間來花費數百萬個按鍵,而是使用SCAN命令來掃描多個按鍵,其語法是SCAN CURSOR MATCH match COUNT count ..例如SCAN 0 MATCH * COUNT 10000 ..最初,將光標視為0,因為當返回的光標為0時,停止了其他鍵的迭代。

from redis import StrictRedis
red = StrictRedis(host='127.0.0.1')
all_keys=red.keys("*")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM