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

Jag*_*dha 68 ruby rubygems ohm nosql redis

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

任何领导都会在很长一段时间内帮助我(我基本上被困在了).提前致谢!

更新:
使用redis-cli尝试此操作的其他人的注释,使用此:

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

谢谢@antirez和@hellvinz!

ant*_*rez 116

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

只需启动不带参数的工具,然后键入命令以探索数据集.

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

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


N.M*_*ole 24

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

redis-cli KEYS \* | xargs -n 1 redis-cli dump
Run Code Online (Sandbox Code Playgroud)

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

  • 你的第一个回答我告诉我,我必须在命令行中将*转换为\\*....必须浪费大约20分钟,"redis命令的参数数量错误"才能完美运行在客户端直到我发现这个.谢谢. (7认同)

hel*_*inz 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('*')
Run Code Online (Sandbox Code Playgroud)