redis裡顯示key大小的shell指令碼
redis裡可以顯示key大小的shell指令碼,很方便的定位redis裡有哪些大key。
指令碼內容如下:
# cat redis-print-keysize.sh
#!/usr/bin/env bash
human_size() {
awk -v sum="$1" ' BEGIN {hum[1024^3]="Gb"; hum[1024^2]="Mb"; hum[1024]="Kb"; for (x=1024^3; x>=1024; x/=1024) { if (sum>=x) { printf "%.2f %s\n",sum/x,hum[x]; break; } } if (sum<1024) print "1kb"; } '
}
#redis_cmd='redis-cli'
redis_cmd='redis-cli -n 10'
# get keys and sizes
for k in `$redis_cmd keys "*"`; do key_size_bytes=`$redis_cmd debug object $k | perl -wpe 's/^.+serializedlength:([\d]+).+$/$1/g'`; size_key_list="$size_key_list$key_size_bytes $k\n"; done
# sort the list
sorted_key_list=`echo -e "$size_key_list" | sort -n`
# print out the list with human readable sizes
echo -e "$sorted_key_list" | while read l; do
if [[ -n "$l" ]]; then
size=`echo $l | perl -wpe 's/^(\d+).+/$1/g'`; hsize=`human_size "$size"`; key=`echo $l | perl -wpe 's/^\d+(.+)/$1/g'`; printf "%-10s%s\n" "$hsize" "$key";
fi
done
指令碼說明:
掃描哪個db,修改指令碼里對應redis_cmd的位置,加入 -n選項,例如:
# redis-cli info keyspace | grep db10
db10:keys=6,expires=0,avg_ttl=0
顯示db10的裡的6個key的大小:
將redis_cmd='redis-cli'改為redis_cmd='redis-cli -n 10'
執行:
# ./redis_key_sizes.sh
1kb prod_domain_error
1kb prod_solr_error
200.86 Kb test_buffer_error
241.55 Kb prod_comment_error
19.20 Mb prod_ref_15_error
70.55 Mb prod_ref_151_error
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2639459/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Redis大key掃描Python指令碼RedisPython指令碼
- shell基礎教程二十一: shell指令碼中echo顯示內容帶顏色指令碼
- 【Redis】獲取沒有設定ttl的key指令碼Redis指令碼
- Linux中顯示記憶體和CPU使用率最高的程式的SHELL指令碼例子Linux記憶體指令碼
- shell指令碼指令碼
- linux常用的shell指令碼Linux指令碼
- shell指令碼案例指令碼
- 常用shell指令碼指令碼
- Linux Shell指令碼Linux指令碼
- shell指令碼(6)-shell陣列指令碼陣列
- 程式碼上線的shell指令碼指令碼
- linux shell指令碼中 =~ 的作用Linux指令碼
- shell 指令碼加密 | shc指令碼加密
- 執行shell指令碼指令碼
- Shell 指令碼語句指令碼
- 初識shell指令碼指令碼
- 【指令碼】shell語法指令碼
- shell 指令碼寫法:指令碼
- 如何加密shell指令碼加密指令碼
- shell指令碼總結指令碼
- Redis 檢視所有 key 的 value 值所佔記憶體大小Redis記憶體
- 什麼是Shell指令碼?Shell指令碼在Linux運維工作中的地位!指令碼Linux運維
- Linux shell:執行shell指令碼的幾種方式Linux指令碼
- shell指令碼放到crontab裡就執行不成功的問題指令碼
- iOS逆向 Shell指令碼+指令碼重簽名iOS指令碼
- [20220317]補充完善TPT 顯示欄位列的指令碼.txt指令碼
- 編寫shell指令碼的規範指令碼
- 幾例實用的Shell指令碼指令碼
- 如何編寫高效的 Shell 指令碼指令碼
- 如何呼叫python中的shell指令碼?Python指令碼
- shell指令碼的基礎知識指令碼
- Shell指令碼中的 /Dev/Null 用途指令碼devNull
- shell指令碼-免互動指令碼
- 【shell】磁碟監控指令碼指令碼
- Shell指令碼最佳實踐指令碼
- shell指令碼——基本運算子指令碼
- Shell指令碼應用(三)指令碼
- 前端釋出shell指令碼前端指令碼