Redis集群高可用搭建指南,告别单点故障,轻松掌握分布式缓存部署与故障转移实战技巧
要搭建高可用Redis集群避免单点故障,关键是部署至少3个主节点和3个从节点,通过数据分片和自动故障转移实现。
为什么需要Redis集群
单台Redis服务器一旦出问题,整个服务就会停摆,这叫做单点故障。用集群就是把数据分散到多台机器上,即使一台坏了,别的还能顶上,保证服务不中断。就好比不要把鸡蛋放在一个篮子里,篮子破了鸡蛋也不会全碎。
准备你的机器
你需要至少6台服务器或虚拟机,3台做主节点存数据,3台做从节点备份。每台机器都要安装相同版本的Redis,建议用5.0或更新版本。确保这些机器网络互通,防火墙打开相应端口,一般是6379用于客户端连接,16379用于节点间通信。
安装和配置Redis
在每台机器上,下载Redis源码编译安装,或者用系统包管理器安装。然后修改配置文件,打开集群模式,设置集群节点超时时间,指定集群配置文件路径。注意每台机器的配置文件里要写对各自的IP地址,别都写成一样的。
启动所有节点
分别启动6台机器上的Redis服务,检查日志没有报错。这时它们还是独立的,需要把它们组织成一个集群。
创建集群
使用Redis自带的工具redis-cli,在其中一台机器上执行创建命令,把6个节点的地址都列出来,工具会自动分配主从关系。命令执行后,它会提示你接受配置,输入yes确认。稍等片刻,集群就创建好了。
测试集群工作
连接上集群,存几个键值对试试。你可以故意关掉一个主节点,看看它的从节点会不会自动升级为主节点,数据还能不能正常访问。这就是故障转移,是自动发生的。
日常管理和监控
集群运行后,要定期检查节点状态,看看有没有节点掉线。可以用Redis的命令查看集群信息,也可以配合监控工具图形化显示。平时加数据、删数据不用特别操心,集群自己会处理。
注意事项
集群模式对多键操作有限制,要求这些键在同一个槽位。客户端要使用支持集群的库来连接。数据备份和恢复比单机复杂一点,需要针对每个节点操作。
FAQ
问:最少需要几台机器?答:最少6台,3主3从。如果资源紧张,可以在3台机器上每台运行两个Redis实例,但不推荐生产环境这样做。
问:一个节点挂了数据会丢吗?答:如果主节点和它的从节点同时挂掉,这个主节点负责的那部分数据就暂时无法访问了。数据本身是否丢失,取决于你的持久化设置。一般建议开启持久化。
问:客户端怎么连接集群?答:客户端只需要连接集群中任意一个节点的地址,客户端库会自动发现其他节点。连接时使用集群模式,而不是普通单机模式。
引用来源
本文内容基于Redis官方文档关于集群的章节(https://redis.io/topics/cluster-tutorial)以及常见的分布式系统部署实践整理而成。