我在Ruby中使用一个名为Ohm的ORM,它在Redis之上工作,我很想知道数据是如何实际存储的。我想知道是否有办法列出Redis数据库中的所有键/值。
任何领先优势都会帮助我(我基本上被困在了)。提前谢谢!
更新
其他人尝试使用redis-cli的注意事项,请使用:
$ redis-cli keys
* (press * followed by Ctrl-D)
... (prints a list of keys and exits)
$
谢谢@antirez和@hellvinz!
答案 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