集群环境删除redis指定的key

一、说明node

redis集群上有时候会须要删除多个key,就必须须要登陆到每一个节点上,并且有可能这个key不在这个节点,这样删除起来就比较麻烦,下面提供一种便捷方式能够实现redis

 

二、查看redis集群中的master节点bash

首先你要确认有哪几台master节点,能够用下面命令查看:blog

 

#./redis-cli  cluster nodes | grep masterit

 

image.png

PS:在这里我有3台master主节点,端口都是6379table

 

三、编写redis_del.sh脚本ast

#!/bin/bashclass

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

 

参数说明:

    -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值

......等等

 

 

好了,以为有用的朋友能够转发或者收藏,你们有问题能够在下面留言一块儿探讨,有更好的建议也能够在评论区贴出来!!!

相关文章
相关标签/搜索