我在Ruby中使用一个名为Ohm的ORM,它建立在Redis之上,想知道数据实际上是如何存储的。我想知道是否有一种方法可以列出Redis数据库中所有键/值。
更新:
对于其他尝试使用redis-cli测试的人,请使用以下命令:
$ redis-cli keys
* (press * followed by Ctrl-D)
... (prints a list of keys and exits)
$
感谢@antirez和@hellvinz!
redis-cli
工具来探索Redis数据集。KEYS
将列出与glob样式模式匹配的所有键,例如使用:keys *
您将看到所有可用的键。TYPE
命令检查给定键的类型,如果它是列表,则可以使用LRANGE mykey 0 -1
检索其中的元素。 如果它是一个Set,您将使用SMEMBERS mykey
等。 请查阅Redis文档以获取所有可用命令及其工作方式的列表。这里只是在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('*')
我来到这里是因为我在寻找如何备份redis中所有的键/值。如果你也有同样的需求,可以尝试下面的命令:
redis-cli bgsave
redis-cli KEYS * |xargs -n 1 -P8 redis-cli get
- Andy Triggsredis-cli
,速度会非常慢。 - tokland