使用ruby删除redis密钥匹配模式

时间:2015-05-14 11:30:32

标签: ruby redis

我想删除在命名空间" datetime_filter"下定义的所有redis键。在红宝石(维护任务)。 怎么做?

3 个答案:

答案 0 :(得分:5)

如果您不想阻止服务器,执行此操作的正确方法是使用SCAN命令。该命令将为您提供一个迭代器,如果您愿意,只返回与您的模式匹配的键(在这种情况下,确保使用MATCH选项是合适的)。 Ruby脚本只需要迭代和删除。

所以:

WHILE keys = SCAN MATCH datetime_filter*
    FOREACH key in keys DEL key

答案 1 :(得分:2)

试试这个 -

 $redis.del(datetime_filter_key)

并遵循以下方法 -

In redis, how do i remove keys?

答案 2 :(得分:0)

您可以使用:

Rails.cache.redis.keys.grep(/pattern/).each do |k|
  Rails.cache.redis.del(k)
end