ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

【lua】redis でメモリ使用量の大きいキーを探す

redis でメモリ使用量の大きいキーを探したときに使用したスクリプトをここにメモします。

redis と lua について

redis は、サーバー上で lua スクリプトを実行させることができます。

実装

コマンド

$ redis-cli --eval mem_usage.lua | head -200

スクリプト

local keys = redis.call('KEYS', '*')
local result = {}

for _, key in ipairs(keys) do
    local mem_usage = redis.call('MEMORY', 'USAGE', key)
    table.insert(result, {key, mem_usage})
end

table.sort(result, function(a, b) return a[2] > b[2] end)

for _, entry in ipairs(result) do
    redis.log(redis.LOG_NOTICE, entry[1] .. " " .. entry[2])
end

return result