一、使用场景
- 高并发、高可用
二、主从复制
主从复制: 单节点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
