redis-(伪)主从集群搭建
为了避免Redis的单点故障问题,可以搭建一个redis集群,将数据备份到集群中的其他节点上,如果其中一个
redis节点宕机,则由集群中的其他节点顶上。redis的主从集群是一个“一主多从”的读写分离集群。集群中的
master节点负责客户端的读写请求,slave节点只能处理客户端的读请求。之所以要将集群搭建为读写分离模式,
主要是因为对于数据库集群而言写操作压力一般都比较小,压力大多数来自于读操作请求。所以,只有一个节点
负责处理写操作请求即可。
配置分析
repl-disable-tcp-nodelay
该属性用于设置是否禁用TCP 特性 tcp-nodelay。设置为yes 则禁用tcp-nodelay,此时master 与 slave 间的通信会产生延迟,但使用的TCP 包数量会较少,占用的网络带宽会较小。相反,如果设置为no,则网络延迟会变小,但使用的TCP包数量会较多,相应占用的网络带宽会大。
tcp-nodelay:为了充分复用网络带宽,TCP 总是希望发送尽可能大的数据块。为了达到该目的,TCP 中使用了一个名为Nagle 的算法。
Nagle算法的工作原理是,网络在接收到要发送的数据后,并不直接发送,而是等待着数据量足够大(由TCP网络特性决定)时再一次性发送出去。这样,网络上传输的有效数据比例就得到了大大提升,无效数据传递量极大减少,于是就节省了网络带宽,缓解了网络压力。
requirepass&masterauth
因为我们要搭建主从集群,且每个主机都有可能会是Master,所以最好不要设置密码验证属性requirepass。如果真需要设置,一定要每个主机的密码都设置为相同的。此时每个配置文件中都要设置两个完全相同的属性:requirepass与masterauth。其中requirepass 用于指定当前主机的访问密码,而masterauth 用于指定当前 slave访问 master 时向 master 提交的访问密码,用于让 master 验证自己身份是否合法。
replica-priority
replica-priority是Redis Sentinel(哨兵)用于主节点故障时选择从节点升级为主节点的关键依据。
当主节点因故障(如宕机、网络断开)无法提供服务时,Sentinel会从所有健康的从节点中,选择优先级最高的从节点晋升为新主节点,以保证集群的高可用性。
取值规则:数值越低,优先级越高。例如,从节点A(priority=10)会优先于从节点B(priority=25)、从节点C(priority=100)被选为新主节点。若从节点的replica-priority设置为0,则该从节点永远不会被Sentinel选为新主节点。
Redis默认给所有从节点分配100的优先级,意味着若未修改任何从节点的优先级,Sentinel会优先选择复制进度最同步(replica_offset最大)的从节点作为新主节点(当优先级相同时,复制进度是第二选择条件)。
默认值100是一个“中性”设置,允许用户根据实际需求调整优先级(如降低关键从节点的优先级以优先晋升)。
文件配置
进入redis6381.conf和redis6382.conf文件后进行如下操作,注意替换的内容!
配置一主两从关系
配置
添加元素验证主从
注意:如果关闭(shutdown)了其中一个从节点,那么重新启动从节点之后还是要执行slaveof命令才可以指定主从关系的!!!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/942075.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!