Redis主从复制

本文阐述Redis的高可用设计,涉及主从复制、集群部署和读写分离策略,以及故障转移和权限管理。
摘要由CSDN通过智能技术生成

一、高可用

“高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。CAP的A AP模型单机Redis是无法保证高可用性的,当Redis服务器宕机后,即使在有持久化的机制下也无法保证不丢失数据。所以我们采用Redis多机和集群的方式来保证Redis的高可用性。单进程+单线程 + 多机(集群)

二、主从复制

Redis支持主从复制功能,可以通过执行slaveof(Redis5以后改成replicaof)或者在配置文件中设置slaveof(Redis5以后改成replicaof)来开启复制功能。
1、一主一从
在这里插入图片描述
2、一主多从
在这里插入图片描述
3、传递复制

在这里插入图片描述

三、主从配置

主Redis配置:无需特殊配置
从Redis配置:修改从服务器上的redis.conf文件:

#slaveof<masterip><masterport>
#表示当前【从服务器】对应的【主服务器】的IP是192.168.10.135,端口是6379。replicaof127.0.0.16379

四、作用

1、读写分离
一主多从,主从同步
主负责写,从负责读
提升Redis的性能和吞吐量主从的数据一致性问题
2、数据容灾
从机是主机的备份
主机宕机,从机可读不可写
默认情况下主机宕机后,从机不可为主机利用哨兵可以实现主从切换,做到高可用

五、原理与实现

复制流程
保存主节点信息
当客户端向从服务器发送slaveof(replicaof) 主机地址(127.0.0.1)端口(6379)时:从服务器将主机ip(127.0.0.1)和端口(6379)保存到redisServer的masterhost和masterport中。

在这里插入图片描述
从服务器将向发送SLAVEOF命令的客户端返回OK,表示复制指令已经被接收,而实际上复制工作是在OK返回之后进行。
建立socket连接
slaver与master建立socket连接
slaver关联文件事件处理器
该处理器接收RDB文件(全量复制)、接收Master传播来的写命令(增量复制)
在这里插入图片描述
发送ping命令
Slaver向Master发送ping命令
1、检测socket的读写状态
2、检测Master能否正常处理

Master的响应:
1、发送“pong” , 说明正常
2、返回错误,说明Master不正常3、timeout,说明网络超时

在这里插入图片描述
权限验证
主从正常连接后,进行权限验证
主未设置密码(requirepass=“”),从也不用设置密码(masterauth=“”)
主设置密码(requirepass!=“”),从需要设置密码(masterauth=主的requirepass的值)或者从通过auth命令向主发送密码
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值