redis集羣批量刪除指定的key

一、說明node

redis集羣上有時候會須要刪除多個key,就必須須要登陸到每一個節點上,並且有可能這個key不在這個節點,這樣刪除起來就比較麻煩,下面提供一種便捷方式能夠實現redis


二、查看redis集羣中的master節點bash

首先你要確認有哪幾臺master節點,能夠用下面命令查看:ide

#./redis-cli  cluster nodes | grep masterspa


image.png

PS:在這裏我有3臺master主節點,端口都是6379
it


三、編寫redis_del.sh腳本table

#!/bin/bashast

redis_comm=/usr/local/redis/bin/redis-cliclass

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 {}


參數說明:

    -c:啓動集羣模式進入redis集羣服務

    -h:redis主機地址

    xargs -i: -i 選項告訴 xargs 可使用{}代替傳遞過來的參數


四、使用redis_del.sh腳本

好比,咱們如今有個需求,要刪除redis集羣以UP開頭全部的key。

  • 首先,咱們先登陸redis集羣,查看一下:

image.png


  • 而後,使用redis_del.sh腳本刪除:

# ./redis_del.sh  UP* 

image.png

PS:如上圖所示,UP開頭的全部key都刪除了


  • 腳本用法:sh  redis_del.sh  key參數

例如,你要刪除其它key值:

./redis_del.sh  a*        #刪除以a開頭的key值

./redis_del.sh  b*        #刪除以b開頭的key值


或者,刪除以什麼結尾的keys值:

./redis_del.sh   *ab        #刪除以ab結尾的key值

./redis_del.sh   *123        #刪除以123結尾的key值

......等等



好了,以爲有用的朋友能夠轉發或者收藏,你們有問題能夠在下面留言一塊兒探討,有更好的建議也能夠在評論區貼出來!!!

相關文章
相關標籤/搜索