【redis】redis重新创建集群

【redis】redis重新创建集群

【一】过程

【1】停止所有 Redis 集群节点

先把 3 台服务器上的 Redis 进程全部停止,防止清理文件时进程写入数据:

powershell 复制代码
# 登录每台Redis服务器,执行停止命令(替换为你的Redis安装路径)
# 方式1:用redis-cli停止(推荐,优雅关闭)
redis-cli -h 本机IP -p 6379 shutdown

# 方式2:若方式1失败,用kill命令(谨慎,避免数据丢失)
ps -ef | grep redis-server | grep -v grep | awk '{print $2}' | xargs kill -9

验证停止结果:ps -ef | grep redis-server 无输出则说明已停止。

【2】清理每个节点的集群残留数据

Redis 集群的元数据、槽位信息、数据会存在数据目录和集群配置文件中,必须全部删除,否则重新创建集群会读取旧数据。

先查看redis.conf,确认数据存储路径(每台节点都要查),确定数据存储路径后,删除data目录下的文件

powershell 复制代码
cd /home/redis/redis_home/6379/data && rm -rf *
cd /home/redis/redis_home/6380/data && rm -rf *

【3】重启服务

powershell 复制代码
cd /home/redis/redis_home/bin
./redis-server ../6379/conf/redis.conf && ./redis-server ../6380/conf/redis.conf

即使删除了文件,部分节点可能残留集群标识,执行重置命令确保节点回到 "单机" 状态:

powershell 复制代码
# 启动单个Redis节点(先不创建集群)
redis-server /etc/redis/redis.conf

# 连接节点,重置集群状态
redis-cli -h 本机IP -p 6379
127.0.0.1:6379> CLUSTER RESET HARD  # 硬重置,清除所有集群相关数据
127.0.0.1:6379> exit

# 再次停止该节点(准备重新创建集群)
redis-cli -h 本机IP -p 6379 shutdown

每台节点都要执行上述 "启动→重置→停止" 操作!

【4】创建集群,验证集群节点

如果配置了host就用host的名称,也可以直接在命令里使用ip

powershell 复制代码
./redis-cli -a Yatop@Bqd@2025 --cluster create redis1.yatop.com:6379 redis1.yatop.com:6380 redis2.yatop.com:6379 redis2.yatop.com:6380 redis3.yatop.com:6379 redis3.yatop.com:6380 --cluster-replicas 1
powershell 复制代码
cluster info
cluster nodes

【5】常见问题

(1)创建集群提示 "node is not empty":

原因是残留了数据 / 元数据,回到步骤 2 重新清理nodes-6379.conf和dump.rdb;

(2)集群创建后槽位未分配:

执行redis-cli --cluster fix 192.168.1.101:6379自动修复槽位;

(3)节点无法连接:

检查防火墙(开放 6379 和 16379 端口)、redis.conf中bind配置(建议设为 0.0.0.0)、protected-mode设为no。

【二】客户端连接集群并使用

【1】以redis集群方式进行连接

注意:-c 表示是以redis集群方式进行连接

powershell 复制代码
./redis-cli -h 192.168.0.102 -p 7001 -c

【2】查看集群状态

powershell 复制代码
cluster info

【3】查看集群中的节点

powershell 复制代码
cluster nodes

【4】添加数据并查看

从7001添加数据看看(如何选择和分配槽位slot的原理看一下)

从7002查询数据

【5】客户端工具连接

可以使用Another Redis Desktop Manager

下载地址:https://gitee.com/qishibo/AnotherRedisDesktopManager/releases

创建连接会话的时候,勾选cluster,标识连接redis集群,这样所有节点槽位的数据都可以查到了

相关推荐
卷毛的技术笔记8 小时前
从零到一:深入浅出分布式锁原理与Spring Boot实战(Redis + ZooKeeper)
java·spring boot·redis·分布式·后端·面试·java-zookeeper
zxna8 小时前
前端直连oss分片上传文件,断点续传
前端
Southern Wind8 小时前
Vue 3 + Socket.io 实时聊天项目完整开发文档
前端·javascript·vue.js
甄心爱学习8 小时前
【项目实训(个人4)】
前端·vue.js·python
轮子大叔8 小时前
HTML入门
前端·html
skilllite作者8 小时前
SkillLite 技术演进笔记:Workspace、沙箱与进化
java·开发语言·前端·笔记·安全·agentskills
qq_419854058 小时前
clip-path绘制倾斜角裁剪的矩形占比条;基于svg实现仪表盘弧线占比图。
前端·javascript·vue.js
m0_738120728 小时前
渗透基础知识ctfshow——Web应用安全与防护(完结:第八章)
前端·python·sql·安全·web安全·网络安全
克里斯蒂亚诺更新8 小时前
uniapp适配H5和Android-apk实现获取当前位置经纬度并调用接口
android·前端·uni-app
宁&沉沦8 小时前
前端开发专用的 Cursor 四大模式「快捷切换 + 指令模板」,直接复制就能用,覆盖 90% 日常场景
前端·编辑器