2024-08-02 03:11:56
Redis哨兵,一个智能的守护者,确保你的数据永不间断,通过监控主从服务器,一旦主服务器出现故障,它能立即启动紧急切换机制,确保服务的无缝连续性。
主从分离的艺术:首先,安装Redis,每个服务都配备独特的身份。复制配置文件到独立的目录,为每个角色定制专属环境。主服务器要特别设置,如将端口调整为6380,添加pidfile以增强管理,启动后确认其为主master。
从服务器则调整端口和pidfile,如果需要,可直接在配置文件中明确标记为从属。连接至masterip:masterport,Redis的从属功能支持部分恢复和自动重连,通过slaveof指令配置,记得适时调整复制回滚日志大小,密码保护则使用masterauth。
启动服务后,每个节点的角色和连接状态都在监控中,实时可见。
从6382端口的转变,就是从无从属到跟随的开始。只需一条命令slaveof masterip masterport,系统便能快速调整为从属,与主服务器紧密相连。
此时,master状态展示:两个从属服务器在线,offset值为785,repl_backlog_active和repl_backlog_size分别代表了备份和活跃数据的容量。为了实现读写分离,主服务器设置slave-read-only yes,确保数据安全。
Sentinel的智慧守护:哨兵集群的配置策略至关重要,以26379端口为例,至少配置三个Sentinel监控节点。主服务器的IP和端口(如6380,权重设为2)是决定故障转移的核心信息。
Sentinel会自动发现并维护从属节点的配置,确保集群的稳定运行。配置master名时,务必避免特殊字符和空格,如'mymaster 127.0.0.1 6380 2'。
启动Sentinel,即redis-sentinel sentinel.conf,它会严密监控主从服务器的动态,守护集群的稳定。
一旦从服务器断开(例如127.0.0.1:6381),Sentinel会迅速识别并选择新的主服务器,如6382,接管职责。
当主服务器失效,Sentinel会自动将备选服务器晋升为主,而旧主即使恢复也无法夺回主动权,只能作为从属继续工作。
总结起来,Sentinel的核心任务包括: