redis遍历所有key大小

redis便利所有key大小

注意:生产环境建议在业务量最低运行时使用 (会生成两个文件)

#!/bin/bash                                                                                                                                                                                              

# 指定输出文件
output_file="redis_key_sizes.txt"
output_file_sort="sort_redis_key_sizes.txt"

# 清空之前的输出文件内容
> "$output_file"

# 获取所有 keys 并循环处理
redis-cli -n 4 keys '*' | while read key; do
    # 获取每个 key 的内存占用
    memory_usage=$(redis-cli MEMORY USAGE "$key")

    # 检查 MEMORY USAGE 命令的输出是否为数字
    if [[ $memory_usage =~ ^[0-9]+$ ]]; then
        echo "$key $memory_usage" >> "$output_file"
    else
        echo "$key NA" >> "$output_file"
    fi
done

echo "完成。输出已保存到 $output_file"

awk '{print $2,$1}'  "$output_file"  | sort -nr | awk '{print $2, $1/(1024*1024)}' > "$output_file_sort"

posted @ 2024-06-01 14:24  姬高波  阅读(22)  评论(1)    收藏  举报