【发布时间】:2021-05-18 11:30:08
【问题描述】:
我想删除 ruby 中命名空间“datetime_filter”下定义的所有 redis 键(维护任务)。 如何做到这一点?
【问题讨论】:
我想删除 ruby 中命名空间“datetime_filter”下定义的所有 redis 键(维护任务)。 如何做到这一点?
【问题讨论】:
如果您不想阻止服务器,正确的方法是使用SCAN 命令。如果您愿意,该命令将为您提供一个仅返回与您的模式匹配的键的迭代器(在这种情况下,使用 MATCH 选项肯定是合适的)。 Ruby 脚本只需要迭代和删除。
所以:
WHILE keys = SCAN MATCH datetime_filter*
FOREACH key in keys DEL key
【讨论】:
【讨论】:
你可以使用:
Rails.cache.redis.keys.grep(/pattern/).each do |k|
Rails.cache.redis.del(k)
end
【讨论】: