2010-09-26 28 views
61

我在Ruby中使用了一個名爲Ohm的ORM,它工作在Redis之上,並且很想知道數據是如何存儲的。我想知道是否有辦法列出Redis數據庫中的所有鍵/值。在Redis db中轉儲所有鍵/值對

任何潛在客戶都會幫助我走出困境(我基本上都堅持atm)。提前致謝!

更新:
的註釋爲別人想這一點,使用Redis的CLI,使用此:

$ redis-cli keys 
* (press * followed by Ctrl-D) 
... (prints a list of keys and exits) 
$ 

感謝@antirez和@hellvinz!

回答

110

您可以使用Redis發行版中包含的redis-cli工具來瀏覽Redis數據集。

只需啓動沒有參數的工具,然後鍵入命令即可瀏覽數據集。

例如KEYS將列出所有與glob樣式匹配的密鑰,例如:keys *您將看到所有可用的密鑰。

然後你可以使用TYPE命令檢查什麼類型是一個給定的關鍵,如果它是一個列表,你可以檢索內部使用LRANGE mykey 0 -1的元素。如果它是一個Set,您將使用SMEMBERS mykey等等。查看Redis文檔以獲取所有可用命令的列表及其工作方式。

+0

謝謝。我發現真的很有幫助! – 2010-09-28 12:11:46

+29

當時沒有意識到,現在我感到很謙卑,已經得到了雷迪斯本人的指導! – 2012-05-23 05:59:56

20

只要添加一個實際的例子紅寶石的antirez響應(我不敢跟他競爭)

irb(main):002:0> require 'rubygems' 
=> true 
irb(main):003:0> require 'redis' 
=> true 
irb(main):004:0> r = Redis.new 
=> #<Redis:0x8605b64 @sock=#<TCPSocket:0x8605ab0>, @timeout=5, @port=6379, @db=0, @host="127.0.0.1"> 
irb(main):005:0> r.keys('*') 
+1

謝謝!現在對我來說很清楚:) – 2010-09-28 12:17:50

19

在命令行中,您還可以使用dump命令,因爲可用的Redis 2.6.0

redis-cli KEYS \* | xargs -n 1 redis-cli dump 

(注意,這還與get命令的早期版本,如果你不介意的話)

+0

或者如果您有較舊的Redis版本,請使用GET命令。如果你有很多密鑰,那麼你可以用-P來平行xargs命令。例如:'redis-cli KEYS * | xargs -n 1 -P8 redis-cli get' – 2014-02-14 14:31:30

+4

你是我遇到的第一個答案,它告訴我我必須在命令行上將*轉義爲\\ * ....必須浪費大約20分鐘的時間,並在redis命令中使用「錯誤的參數數量」,這在客戶端很好地工作,直到我找到了。謝謝。 – 2014-07-21 20:23:08

+0

不客氣。我有同樣的問題:-) – 2014-08-06 12:03:42

2

我在這裏結束了becau我一直在尋找如何備份redis中的所有鍵/值。如果這適用於您,請查看article

使用redis-cli bgsave