清空Redis集群数据工具
FLUSHALL和FLUSHDB是单机命令,所以清空集群需要在所有Master节点上均执行一次。下载:https://github.com/eyjian/redis-tools/blob/master/clear_redis_cluster.sh
#!/bin/bash
# Batch to clear all nodes using FLUSHALL command
# 用来清空一个redis集群中的所有数据,要求 FLUSHALL 命令可用,
# 如果在 redis.conf 中使用 rename 改名了 FLUSHALL,则不能执行本脚本。
# 可带两个参数:
# 1)参数1 集群中的任一可用节点(必须)
# 2)连接redis的密码(设置了密码才需要)
REDIS_CLI=${REDIS_CLI:-redis-cli}
REDIS_IP=${REDIS_IP:-127.0.0.1}
REDIS_PORT=${REDIS_PORT:-6379}# 显示用法函数
function usage()
{echo "Usage: clear_redis_cluster.sh a_redis_node_of_cluster redis_password"echo "Example1: clear_redis_cluster.sh '127.0.0.1:6379'"echo "Example2: clear_redis_cluster.sh '127.0.0.1:6379' '123456'"
}# 检查参数个数
if test $# -lt 1 -o $# -gt 2; thenusageexit 1
fi# 第一个参数为集群中的节点,
REDIS_NODE="$1"
# 第二个参数为密码
REDIS_PASSWORD=""
if test $# -ge 2; thenREDIS_PASSWORD="$2"
fi# 取得IP和端口
eval $(echo "$REDIS_NODE" | awk -F[\:] '{ printf("REDIS_IP=%s\nREDIS_PORT=%s\n",$1,$2) }')
if test -z "$REDIS_IP" -o -z "$REDIS_PORT"; thenecho "Parameter error: \`$REDIS_NODE\`."usageexit 1
fi# 确保redis-cli可用
echo "Checking \`redis-cli\` ..."
which "$REDIS_CLI" > /dev/null 2>&1
if test $? -ne 0; thenecho "Command \`redis-cli\` is not exists or not executable."echo "You can set environment variable \`REDIS_CLI\` to point to the redis-cli."echo "Example: export REDIS_CLI=/usr/local/bin/redis-cli"exit 1
fiif test -z "$REDIS_PASSWORD"; thenredis_nodes=`redis-cli -h $REDIS_IP -p $REDIS_PORT cluster nodes | awk -F[\ \:\@] '!/ERR/{ printf("%s:%s\n",$2,$3); }'`
elseredis_nodes=`redis-cli --no-auth-warning -a "$REDIS_PASSWORD" -h $REDIS_IP -p $REDIS_PORT cluster nodes | awk -F[\ \:\@] '!/ERR/{ printf("%s:%s\n",$2,$3); }'`
fi
if test -z "$redis_nodes"; then# Standlone(非集群)if test -z "$REDIS_PASSWORD"; then$REDIS_CLI -h $REDIS_IP -p $REDIS_PORT FLUSHALL ASYNC$REDIS_CLI -h $REDIS_IP -p $REDIS_PORT BGREWRITEAOFelse$REDIS_CLI --no-auth-warning -a "$REDIS_PASSWORD" -h $REDIS_IP -p $REDIS_PORT FLUSHALL ASYNC$REDIS_CLI --no-auth-warning -a "$REDIS_PASSWORD" -h $REDIS_IP -p $REDIS_PORT BGREWRITEAOFfi
else# Cluster(集群)for redis_node in $redis_nodes;doif test ! -z "$redis_node"; theneval $(echo "$redis_node" | awk -F[\:] '{ printf("redis_node_ip=%s\nredis_node_port=%s\n",$1,$2) }')if test ! -z "$redis_node_ip" -a ! -z "$redis_node_port"; then# clearecho -e "Clearing \033[1;33m${redis_node_ip}:${redis_node_port}\033[m ..."if test -z "$REDIS_PASSWORD"; thenresult=`$REDIS_CLI -h $redis_node_ip -p $redis_node_port FLUSHALL ASYNC`$REDIS_CLI -h $redis_node_ip -p $redis_node_port BGREWRITEAOFelseresult=`$REDIS_CLI --no-auth-warning -a "$REDIS_PASSWORD" -h $redis_node_ip -p $redis_node_port FLUSHALL ASYNC`$REDIS_CLI --no-auth-warning -a "$REDIS_PASSWORD" -h $redis_node_ip -p $redis_node_port BGREWRITEAOFfiif test ! -z "$result"; then# SUCCESSif test "$result" = "OK"; thenecho -e "\033[0;32;32m$result\033[m"elseecho -e "\033[0;32;31m$result\033[m"fifififidone
fi
清空Redis集群数据工具相关推荐
- Redis Desktop Manager – Redis可视化管理工具、redis图形化管理工具、redis可视化客户端、redis集群管理工具
Redis Desktop Manager – 个人认为是目前最好用的Redis可视化管理工具. redis可视化工具.Redis可视化管理工具.redis图形化管理工具.redis可视化客户端.re ...
- redis集群数据迁移方式、宕机
数据迁移方式 转载:https://blog.csdn.net/tianpeng341204/article/details/78963850 Redis Cluster数据分片机制 基础概念 集群: ...
- Redis集群数据同步与选举
一.Redis高可用集群结构 Redis高可用集群有两种,分别是主从哨兵模式和集群模式 1.主从哨兵模式 其中一台服务器作为master服务器,提供读写服务,配置多台从服务器,从服务器只提供只读服务, ...
- Redis Desktop Manager – Redis可视化管理工具、redis图形化管理工具、redis可视化客户端、redis集群管理
Redis Desktop Manager – 个人认为是目前最好用的Redis可视化管理工具. redis可视化工具.Redis可视化管理工具.redis图形化管理工具.redis可视化客户端.re ...
- redis 集群 实操 (史上最全、5w字长文)
文章很长,建议收藏起来慢慢读! 总目录 博客园版 为大家准备了更多的好文章!!!! 推荐:尼恩Java面试宝典(持续更新 + 史上最全 + 面试必备)具体详情,请点击此链接 尼恩Java面试宝典,34 ...
- 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解
前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...
- Redis集群架构搭建详解
一.简介 这其实是一种分布式数据库,就是通过分片的机制储存数据,cluster中的每个节点仅仅储存数据哭的一部分数据,本质上就是实现数据库分片. 这种集群是一种去中心化的集群,也就是说,集群中的每个节 ...
- LINUX安装REDIS集群
linux安装单机版redis已经在另一篇文章说过了,下边来搞集群,环境是新浪云服务器: redis3.0以后开始支持集群. 前言:redis用什么做集群? 用一个叫redis-trib.rb的rub ...
- Redis 集群_主从复制_哨兵模型
1 redis集群简介 1.1 集群的概念 所谓的集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定.高效的状态. 1.1.1 使用redis集群的必要性 问题:我们已经部署好了 ...
最新文章
- java出现404的原因是_为什么使用eclipse总是出现404
- 设备坐标与逻辑坐标关系
- Docker容器学习(一)
- hdu 5256 序列变换 (LIS变形)
- LeetCode 542. 01 矩阵(BFS DP)
- java定义一个方法,返回一个整数数组的元素平均值
- ORACLE中date类型字段的处理
- c语言case标号是连续的吗,在switch语句中,case后的标号只能是什么?_后端开发...
- 怎么样使element ui 的table某列变色
- js获取session_学习后端鉴权系列: 基于Cookie, Session认证
- solidity数据位置
- 实习成长之路:MySQL十三: count(*)这么慢,我该怎么办?为什么那么慢?
- android viewflipper 动态加载,Android开发之ViewFlipper自动播放图片功能实现方法示例...
- java adt教程_用Eclipse安装ADT插件搭建Android环境(图文)
- 微弱光信号检测MATLAB,微弱信号检测笔记(更新中... 2021年3月9日)
- 74.网络安全渗透测试—[SQL注入篇13]—[SQLSERVER+ASP-执行系统命令]
- 控制台基于Quartz.Net组件实现定时任务调度(一)
- 可编程中控 c 语言,LG-PGMIII可编程中控
- 解决别人在收到我们发送的*.md文档时,图片无法显示的问题。
- 搭建一个颜值超高的发卡网站