赞
踩
高可用性(High Availability)
通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。slaveof(Redis5以后改成replicaof)
或者在配置文件中设置slaveof(Redis5以后改成replicaof)
来开启复制功能。主Redis
:无需配置从Redis
:修改从服务器上的 redis.conf
文件# slaveof <masterip> <masterport> #
表示当前【从服务器】对应的【主服务器】的IP是192.168.10.135,端口是6379。
replicaof 127.0.0.1 6379
读写分离
:一主多从,主从同步,主负责写,从负责读,提升Redis的性能和吞吐量,但还是要考虑主从的数据一致性问题数据容灾
:从机是主机的备份,主机宕机,从机可读不可写,默认情况下主机宕机后,从机不可为主机,但利用哨兵可以实现主从切换,做到高可用保存主节点信息
slaveof(replicaof)
主机地址(127.0.0.1) 端口(6379)时:从服务器将主机ip(127.0.0.1)
和端口(6379)
保存到redisServer
的masterhost
和masterport
中。Struct redisServer{
char *masterhost; //主服务器ip
int masterport; //主服务器端口
} ;
建立socket连接:主从复制过程就是建立一个socket连接
:(全量复制(rdb))
,接收master传播过来的写命令(增量复制)
发送ping命令:主从连接之后的状态判断
Slaver向Master发送ping命令
:
Master的响应
:
权限验证
(requirepass!="")
,从需要设置密码(masterauth=主的requirepass的值)
或者从通过auth命令向主发送密码发送端口信息
REPLCONF listening-port
,向主服务器发送从服务器的监听端口号。同步数据
命令传播
Redis 的全量同步过程主要分三个阶段:
同步快照阶段
: Master 创建并发送快照RDB给 Slave , Slave 载入并解析快照。 Master 同时将此阶段所产生的新的写命令存储到缓冲区。同步写缓冲阶段
: Master 向 Slave 同步存储在缓冲区的写操作命令。同步增量阶段
: Master 向 Slave 同步写操作命令。replconf ack <replication_offset>
#ack :应答
#replication_offset:从服务器当前的复制偏移量
检测主从的连接状态:检测主从服务器的网络连接状态
辅助实现min-slaves
检测命令丢失
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。