redis集羣上刪除多個key須要登陸到每一個節點上,並且有可能這個key不在這個節點,這樣刪除起來就比較麻煩redis
這裏提供一個批量刪除redis集羣的key的腳本
===========
key.txt -待刪除的key
能夠直接查詢reids的key並導出key.txtunix
redis-cli -c -h 192.168.0.170 -p 7001 -a password KEYS JXL_REPORT_* > key.txt日誌
-c 表示集羣登陸
-h 登陸主機
-p 登陸端口
-a 登陸密碼,若是沒有,能夠不加
keys JXL_REPORT_* --查詢以JXL_REPORT_開始的key
>> key.txt --查詢結果重定向到key.txtip
redis_delete_key.sh
redis_list 填入集羣節點
[root@redis_cluster01 scripts]# cat redis_delete_key.sh
redis_list=("192.168.0.168:7001" "192.168.0.168:7002" "192.168.0.169:7001" "192.168.0.169:7002" "192.168.0.170:7001" "192.168.0.170:7002")
for info in ${redis_list[@]}
do
echo "開始執行:$info"
ip=`echo $info | cut -d \: -f 1`
port=`echo $info | cut -d \: -f 2`
pw='password'
cat key.txt |xargs -t -n1 redis-cli -h $ip -p $port -a $pw -c del
done
echo "完成"集羣
**************注意登錄
若是出現這種日誌格式
edis-cli -h 192.168.0.170 -p 6380 -a password -c del key3
(integer) 0
須要修改文本爲unix格式 而後再執行cli