discourse/script/redis_memory.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

31 lines
637 B
Ruby
Raw Normal View History

# frozen_string_literal: true
2015-07-10 06:59:44 +08:00
require File.expand_path("../../config/environment", __FILE__)
@redis = Discourse.redis.without_namespace
2015-07-10 06:59:44 +08:00
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"
2017-07-28 09:20:09 +08:00
stats.sort { |a, b| b[1][0] <=> a[1][0] }.first(50).each do |k, (len, type, elems)|
2015-07-10 06:59:44 +08:00
elems = " [#{elems}]" if elems
puts "#{k} #{type} #{len}#{elems}"
end