基本概念:
单个Redis如果因为某种原因宕机的话,可能会导致Redis服务不可用,可以使用主从复制实现一主多从,主节点负责写的操作,从节点负责读的操作,主节点会定期将数据同步到从节点中,保证数据一致性的问题。
一 采用树状方式搭建集群1.如下图,准备7台服务器,主节点(master) IP为 192.168.1.100
2、集群搭建
a、192.168.1.100 主节点(master)不需要配置
全部从节点配置好后,使用info replication 可以看到 当前role: master 主节点,多条slave 是它的从节点
b. 192.168.1.101 和192.168.1.102 配置从节点
vim redis.config
增加 slaveof 指向主节点
增加主节点的 密码
相关配置redis.conf# replicaof
info replication 查看集群信息,可以看到当前角色 role: slave
c. 192.168.1.201 和 192.168.1.301 配置从节点
相关配置redis.conf# replicaof
d. 192.168.1.202 和 192.168.1.302 配置从节点
相关配置redis.conf# replicaof
到这里就配置完成,主节点用于读和写,从节点只能读。
注意:在分布式领域不可能实现绝对强一致性 毕竟是有网络原因
Redis的主从复制作用:
实现Redis集群数据的备份读写分离主从复制需要注意问题: 主节点会将数据采用增量或者全量形式同步给从节点保证数据的一致性问题,传统的一主多同步效率比较 建议采用树状形式。
主从复制原理过程:
1.需要在从redis服务器配置在slaveof 执行 主redis服务ip地址和端口号
192.168.1.100:6379 (主的服务) 和密码;
2.从Redis服务器和主Redis服务器建立Socket长连接;
3.采用全量和增量形式将数据同步给从Redis服务器
全量:从Redis首次启动的时候 (二进制执行dump 文件) rdb
增量:主Redis每次有新的set请求时候 aof 日志文件
主从复制还存在那些缺陷?
如果主的节点宕机之后,可能会导致整个Redis服务不能够实现写操作需要我们人为从新修改新的主的操作。