From 4b5354a99efaf60bf5a53583048fad2a38ab23fa Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 10 Jul 2015 08:59:44 +1000 Subject: [PATCH] simple redis memory analysis script --- script/redis_memory.rb | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 script/redis_memory.rb diff --git a/script/redis_memory.rb b/script/redis_memory.rb new file mode 100644 index 000000000..a127ec37f --- /dev/null +++ b/script/redis_memory.rb @@ -0,0 +1,28 @@ +require File.expand_path("../../config/environment", __FILE__) + +@redis = $redis.without_namespace + +stats = {} + +@redis.scan_each do |k| + type = @redis.type k + debug = @redis.debug :object, k + len = debug.split("serializedlength:")[1].to_i + + case type + when "zset" + elems = @redis.zcard k + when "list" + elems = @redis.llen k + when "hash" + elems = @redis.hlen k + end + + stats[k] = [len, type, elems] +end + +puts "Top 100 keys" +stats.sort{|a,b| b[1][0] <=> a[1][0]}.first(50).each do |k, (len, type, elems)| + elems = " [#{elems}]" if elems + puts "#{k} #{type} #{len}#{elems}" +end