redis集群批量删除指定的key
1、说明
redis集群上有时候会需要删除多个key,就必须需要登录到每个节点上,而且有可能这个key不在这个节点,这样删除起来就比较麻烦,下面提供一种便捷方式可以实现
2、查看redis集群中的master节点
首先你要确认有哪几台master节点,可以用下面命令查看:
#./redis-cli cluster nodes | grep master |
PS:在这里我有3台master主节点,端口都是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 {} |
参数说明:
-c:启动集群模式进入redis集群服务
-h:redis主机地址
xargs -i: -i 选项告诉 xargs 可以使用{}代替传递过来的参数
4、使用redis_del.sh脚本
比如,我们现在有个需求,要删除redis集群以UP开头所有的key。
首先,我们先登录redis集群,查看一下:
然后,使用redis_del.sh脚本删除:
# ./redis_del.sh UP* |
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值
......等等
好了,觉得有用的朋友可以转发或者收藏,大家有问题可以在下面留言一起探讨,有更好的建议也可以在评论区贴出来!!!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341