检索存储在Redis(Ruby)中的所有密钥的列表

时间:2013-08-02 16:48:15

标签: ruby redis

redis-rb gem中是否有一个函数返回存储在DB中的所有密钥的列表?我的最终目标是迭代我的所有键/值对,并对它们执行一些操作。

3 个答案:

答案 0 :(得分:27)

当然,redis-rb公开了所有Redis命令,并将它们表示为客户端对象上的方法。

redis.keys('*')

答案 1 :(得分:18)

如果你的数据库中有大量的记录,内核会杀死你的redis.keys,因为它会占用太多内存。

您想要的是批量提取密钥。 redis-rb 有一个很棒的方法( redis 本身不存在):

    redis.scan_each(match: 'user:*') do |resume_key_name|
        resume_key_name #=> "user:12"
    end

如果您想要所有密钥,请不要使用match选项。

答案 2 :(得分:7)

redis.keys 这将以数组形式返回结果。

更多信息:http://www.rubydoc.info/github/ezmobius/redis-rb/Redis