2013-12-12 71 views

回答

4

你可以使用「MOVE」將一個密鑰移動到另一個redis數據庫;

下面的文本是從redis.io

MOVE密鑰DB從當前選擇的數據庫

移動鍵(參見SELECT)到指定的目標數據庫。如果密鑰已經存在於目標數據庫中,或者它不存在於源數據庫中,則它不執行任何操作。因此,可以將MOVE用作鎖定原語。

返回值

整數應答,特別是:

  • 1,如果鍵被移動。
  • 0如果密鑰未被移動。
+0

移動命令只移動一個鍵,如果我想移動一組鍵,該怎麼辦? –

+0

@aarish我沒有一些好的建議。我想你可以使用** KEYS **和** MOVE **用腳本來完成它。 – freedoo

+0

您可以執行MULTI/EXEC塊,以便一次緩衝並執行所有命令。 –

2

我認爲這將做的工作:

redis-cli keys '*' | xargs -I % redis-cli move % 1 > /dev/null 

(1爲新的數據庫數量,並重定向到/ dev/null是爲了避免讓數以百萬計的「1」線 - 自它會通過一個移動的關鍵之一,每次)

返回1要注意的是Redis的可能會用完的連接,然後將顯示噸這樣的錯誤:

無法連接至R edis at 127.0.0.1:6379:無法分配請求的地址

因此,轉儲數據庫然後將其導入新數據庫可能會更好(也更快)。

相關問題