我想删除在命名空间" datetime_filter"下定义的所有redis键。在红宝石(维护任务)。 怎么做?
答案 0 :(得分:5)
如果您不想阻止服务器,执行此操作的正确方法是使用SCAN命令。该命令将为您提供一个迭代器,如果您愿意,只返回与您的模式匹配的键(在这种情况下,确保使用MATCH
选项是合适的)。 Ruby脚本只需要迭代和删除。
所以:
WHILE keys = SCAN MATCH datetime_filter*
FOREACH key in keys DEL key
答案 1 :(得分:2)
答案 2 :(得分:0)
您可以使用:
Rails.cache.redis.keys.grep(/pattern/).each do |k|
Rails.cache.redis.del(k)
end