find-and-deleting-redis-keys
Delete all redis keys used by cached_find_by method. This has been useful when we need to clear all cached_find_by due to serialization issues:​
Rails.cache.delete_matched("find_*")
Find and delete redis big keys
#Find large values
tot_size = 0
REDIS.keys('*').each do |key|
if key.include?('cache:app_accesses') || key.include?('cache:roles_user')
REDIS.del(key)
next
end
type = type = REDIS.type(key)
next if type=='none' #Ignore if key has already been removed
if type=='string'
val = REDIS.get(key)
len = val.length
elsif type=='hash'
len = REDIS.hvals(key).to_s.length
elsif type=='list'
len = REDIS.llen(key)
elsif type=='set'
len = REDIS.scard(key)
else
len = 0
puts "Unkown Type: #{type}. Key: #{key}"
end
tot_size += len if len.present?
if len > 100000
puts "Big key: #{key}. Type: #{type}. Length #{len}"
REDIS.del(key)
end
end; puts 'done'