redis-rb gem中是否有一个函数返回存储在DB中的所有键的列表?我的最终目标是迭代我的所有键/值对,并对它们执行一些操作。
当然,redis-rb公开了所有Redis命令,并将它们表示为客户端对象上的方法。
redis.keys('*')
如果你的数据库中有大量的记录,内核会杀死你的redis.keys
,因为它会占用太多内存。
你想要的是分批提取密钥。 redis-rb有一个很棒的方法(redis本身没有):
redis.scan_each(match: 'user:*') do |resume_key_name|
resume_key_name #=> "user:12"
end
如果您想要所有键,请不要使用match
选项。
redis.keys
这将以数组形式返回结果。