1奢啥、說明
redis集群上有時候會需要刪除多個key诀黍,就必須需要登錄到每個節(jié)點上髓抑,而且有可能這個key不在這個節(jié)點未巫,這樣刪除起來就比較麻煩,下面提供一種便捷方式可以實現(xiàn)
2启昧、查看redis集群中的master節(jié)點
首先你要確認(rèn)有哪幾臺master節(jié)點叙凡,可以用下面命令查看:
#./redis-cli? cluster nodes | grep master
PS:在這里我有3臺master主節(jié)點,端口都是6379
3密末、編寫redis_del.sh腳本
#!/bin/bash
redis_comm=/usr/local/redis/bin/redis-cli
redis_ser01=172.18.18.107
redis_ser02=172.18.18.108
redis_ser03=172.18.18.109
$redis_comm -c -h $redis_ser01? keys $1 | xargs -i ./redis-cli -h $redis_ser01 del {}
$redis_comm -c -h $redis_ser02? keys $1 | xargs -i ./redis-cli -h $redis_ser02 del {}
$redis_comm -c -h $redis_ser03? keys $1 | xargs -i ./redis-cli -h $redis_ser03 del {}
參數(shù)說明:
-c:啟動集群模式進入redis集群服務(wù)
-h:redis主機地址
????xargs -i:?-i 選項告訴 xargs 可以使用{}代替?zhèn)鬟f過來的參數(shù)
4握爷、使用redis_del.sh腳本
比如,我們現(xiàn)在有個需求严里,要刪除redis集群以UP開頭所有的key新啼。
首先,我們先登錄redis集群刹碾,查看一下:
然后燥撞,使用redis_del.sh腳本刪除:
# ./redis_del.sh? UP*?
PS:如上圖所示,UP開頭的所有key都刪除了
腳本用法:sh? redis_del.sh? key參數(shù)
例如迷帜,你要刪除其它key值:
./redis_del.sh? a*????????#刪除以a開頭的key值
./redis_del.sh? b*????????#刪除以b開頭的key值
或者物舒,刪除以什么結(jié)尾的keys值:
./redis_del.sh? ?*ab????????#刪除以ab結(jié)尾的key值
./redis_del.sh? ?*123????????#刪除以123結(jié)尾的key值
......等等