教你一步步搞定redis集群卸载,别急慢慢来操作才稳妥
- 问答
- 2025-12-28 03:37:14
- 1
主要基于Redis官方文档中关于节点下线与集群管理的通用原则,并结合常见的Linux系统服务管理命令。
第一步:心态放平,准备工作最重要
卸载Redis集群,最忌讳的就是心急,你一着急,可能就会漏掉关键步骤,导致数据丢失或者系统里留下一些难以清理的“垃圾”文件,在开始敲任何命令之前,先做好下面几件事:
- 确认要卸载的原因:你是要彻底不再使用Redis了,还是只是想重新部署一个版本更新的集群?如果是后者,或许迁移数据是更好的选择,而不是直接卸载。
- 备份数据!备份数据!备份数据! 这是最重要的一步,即使你觉得数据已经没用了,也强烈建议你进行一次完整的备份,你可以使用Redis自带的
redis-cli工具,连接到集群的每一个主节点,执行BGSAVE命令,将数据快照保存到磁盘上的RDB文件,确保你知道这些RDB文件保存在哪个目录(通常在Redis配置文件的dir项中指定),把这些文件复制到一个安全的地方。 - 记录集群信息:找张纸或者开个文本文件,记下你的集群有哪些节点,包括每个节点的IP地址、端口号,以及哪些是主节点,哪些是从节点,你可以在任意一个节点上,使用
redis-cli -c -h [节点IP] -p [节点端口] cluster nodes命令来查看完整的集群拓扑结构,这一步能让你在操作时心中有数,不会搞混。
第二步:让集群安全地“下班”——逐个移除节点
你不能直接关掉服务器或者粗暴地停止Redis服务,那样集群会认为有节点故障,会触发故障转移,导致一段时间内服务不可用,甚至可能引起数据不一致,正确的做法是告诉集群:“我这个节点要离开了,请把我的工作交接给别人。”
-
先移除从节点:先从从节点开始移除比较安全,连接到任意一个还能正常工作的集群节点(比如一个主节点),使用以下命令来移除一个从节点:
redis-cli -c -h [任意主节点IP] -p [端口] cluster forget [要移除的从节点ID]那个“从节点ID”就是你在第一步用
cluster nodes命令查到的长长的一串字符串,执行这个命令后,集群就不再记录这个从节点了。
-
再安全地下线主节点:移除主节点要更小心,因为它上面存储着部分数据(哈希槽),你需要把该主节点负责的所有哈希槽都迁移到其他主节点上,这是一个精细活:
- 再次使用
cluster nodes命令,找到这个主节点负责的哈希槽范围。 - 对于每一个哈希槽,你都需要使用
cluster setslot [槽编号] migrating [目标节点ID]命令(在源主节点上执行)和cluster setslot [槽编号] importing [源节点ID]命令(在目标主节点上执行)来逐个迁移,手动做这个非常麻烦。 - 更推荐的方法是使用Redis内置的重新分片工具:
redis-cli --cluster reshard [任意节点IP]:[端口],然后根据提示,输入你要迁移的哈希槽数量、目标节点的ID,最后输入源节点的ID(也就是你要下线的那个主节点的ID),工具会自动完成数据迁移,迁移完成后,这个主节点就不再持有任何哈希槽了。 - 当主节点上的哈希槽全部迁走后,它实际上就变成了一个“光杆司令”,此时你就可以像处理从节点一样,使用
cluster forget命令把它从集群中移除了。
- 再次使用
-
重复操作:对集群中的每一个节点,都重复上面的步骤,直到整个集群的节点信息都被清理干净,理想情况下,当你移除最后一个节点时,集群也就不复存在了。
第三步:停掉服务,删除文件
当所有节点都已经从集群逻辑中移除后,现在才可以开始操作服务器本身。

-
停止Redis服务:登录到每一台安装了Redis的服务器上,使用系统命令停止Redis服务,根据你安装时的方式,命令可能不同,常见的有:
systemctl stop redis或systemctl stop redis-server(如果你用的是systemd)service redis-server stop(如果你用的是SysVinit)- 如果以上都不是,你可能需要找到Redis的进程ID,然后用
kill命令温和地结束它。
-
防止开机自启:为了避免服务器重启后Redis服务又自动跑起来,最好禁用它的自启:
systemctl disable redischkconfig redis off
-
彻底删除文件:现在可以删除Redis相关的文件了,这包括:
- Redis可执行程序:通常位于
/usr/local/bin/目录下,redis-server,redis-cli等文件。 - 配置文件:通常叫
redis.conf或者类似的名字,可能在/etc/redis/、/etc/等目录下。 - 数据文件和日志文件:这是最关键要清理的,位置取决于你的配置文件里的设置,
dir指令指定了数据目录(存放RDB和AOF文件),logfile指令指定了日志文件路径,把这些目录和文件都删掉。 - PID文件:通常叫
redis.pid,也在配置文件中指定了路径。
- Redis可执行程序:通常位于
第四步:最后的检查
完成以上所有步骤后,最好做一次检查:
- 用
ps aux | grep redis命令看看是否还有Redis进程在运行。 - 到你已经删除的Redis数据和日志目录下,确认文件已经清理干净。
- 尝试一下端口连接,比如用
telnet [服务器IP] 6379,应该会连接失败。
走到这里,你的Redis集群就已经被稳妥地卸载干净了,整个过程的核心在于“慢”和“序”,先让集群逻辑上解散,再物理上删除软件和文件,这样才能万无一失。
本文由度秀梅于2025-12-28发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/69797.html
