一、使用场景
- 高并发、高可用
二、主从复制
主从复制
: 单节点Redis的并发能力
是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离
。
主从数据同步
原理:
1.全量同步
第一次
slave
从节点: 执行replicaof
命令建立连接。
slave
从节点: 向master
节点,请求数据同步
发送请求数据同步携带replid、offset
。
master
主节点: 收到slave
从节点请求,判断是否是第一次同步
(通过判断 replid 是否一致)。
master
主节点: 如果是第一次,发送master
数据版本信息replid、offset
给到slave
从节点。
slave
从节点: 保存master
返回的版本信息,进行保存。
master
主节点: 执行bgsave
命令,生成 RDB 文件。
master
主节点: 发送RDB 文件,给slave
从节点。
slave
从节点: 清空本地数据,加载RDB文件。
master
主节点: 如果在执行期间同步数据给slave
节点时, 存在其他写入操作到master
主节点时, 主节点会记录 RDB 期间的所有命令
,写入到repl_baklog
文件。
master
主节点:发送 repl_baklog 文件中的命令
到slave
从节点。
slave
从节点: 接收的命令。
2.增量同步
slave
节点重启:
slave
从节点:发送 psyncreplid
、offset
=> 告诉master
节点 。
master
主节点: 判断是否和replid
一致,不是第一次,回复continue
, => 给到slave
节点
master
主节点: 去repl_baklog
中获取offset
后的数据。
master
主节点: 发送offset
命令给 => 给slave
节点。
slave
从节点: 执行offset
命令。
三、哨兵模式
四、分片集群
五、面试题
:: details :: details :: details :: details :: details