Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检索存储在Redis(Ruby)中的所有键的列表_Ruby_Redis - Fatal编程技术网

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

检索存储在Redis(Ruby)中的所有键的列表,ruby,redis,Ruby,Redis,redis rb gem中是否有函数返回数据库中存储的所有密钥的列表?我的最终目标是迭代所有键/值对,并对它们执行一些操作 当然,redis rb公开所有redis命令,并将它们表示为客户端对象上的方法 redis.keys('*') redis.keys 这将以数组形式返回结果 更多信息:如果您的数据库中有大量记录,内核将杀死您的redis.keys,因为它将占用太多内存 您需要的是分批提取密钥redis rb有一个很好的方法(在redis本身中不存在): 如果你想要所有的钥匙,就不要使用m

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

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

redis.keys('*')
redis.keys
这将以数组形式返回结果


更多信息:

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

您需要的是分批提取密钥redis rb有一个很好的方法(在redis本身中不存在):


如果你想要所有的钥匙,就不要使用
match
选项。

这对我来说太慢了;只需5.6K键就可以在Redis数据库上返回,耗时约15秒。@AbeVoelker您可以将Redis与
管道化
一起使用,这将非常快,请参见@Alex answer。简朴straightforward@SiweiShen申思维, 他的答案会因为太多的钥匙而失败。“但这对几百人来说很好。”斯维申说申思维 , 由于阻塞问题和性能问题,不鼓励使用
.keys
.keys
将导致阻塞和性能问题<应改用code>.scan或
.scan\u每个
    redis.scan_each(match: 'user:*') do |resume_key_name|
        resume_key_name #=> "user:12"
    end