转储Redis数据库中的所有键/值对

时间:2010-09-26 17:07:12

标签: ruby rubygems nosql redis ohm

我在Ruby中使用一个名为Ohm的ORM,它在Redis之上工作,我很想知道数据是如何实际存储的。我想知道是否有办法列出Redis数据库中的所有键/值。

任何领先优势都会帮助我(我基本上被困在了)。提前谢谢!

更新
其他人尝试使用redis-cli的注意事项,请使用:

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

谢谢@antirez和@hellvinz!

4 个答案:

答案 0 :(得分:115)

您可以使用Redis发行版中包含的redis-cli工具浏览Redis数据集。

只需启动不带参数的工具,然后键入命令以浏览数据集。

例如KEYS将列出与glob样式模式匹配的所有键,例如:keys *您将看到所有可用的键。

然后,您可以使用TYPE命令检查给定键的类型,如果是列表,则可以使用LRANGE mykey 0 -1检索内部元素。如果它是一个Set,你将使用SMEMBERS mykey等等。查看Redis文档以获取所有可用命令及其工作方式的列表。

答案 1 :(得分:23)

从命令行,您还可以使用自Redis 2.6.0以来可用的dump命令

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

(请注意,如果您不介意,这也适用于早期版本的get命令)

答案 2 :(得分:20)

只是在antirez响应中添加一个实用的ruby示例(我不敢与他竞争)

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('*')

答案 3 :(得分:3)

我最终在这里,因为我正在寻找如何备份redis中的所有键/值。如果这适用于您,请查看此article

使用redis-cli bgsave