视频下载地址:慕课Redis视频教程
1、单机的问题
- 机器故障
- 容量瓶颈
- QPS瓶颈
2、主从复制的特点
- 一个master可以有多个slave
- 一个slave只能有一个master
- 数据流向是单向的,master到slaver
3、主从复制的实现
-
命令实现
- 建立主从关系
从服务器:slaveof ip port
- 取消主从关系
从服务器:slaveof no one
-
配置实现
- 从服务器:修改配置文件
slaveof ip port
slave-read-only yes【只读】
比较:
4、完全重同步
完全重同步的情况:
- redis slave首启动或者重启后,连接到master时
- redis slave进程没重启,但是掉线了,重连后不满足部分复制条件
4.1、完全重同步执行流程
4.2、完全重同步的开销
- bgsave时间
- RDB文件网络传输时间
- 从节点清空数据时间
- 从节点加载RDB的时间
- 如果开启AOF,还要AOF重写时间
5、部分重同步
部分重同步的情况:
- 从节点掉线重连后,redis slave保存的run id与master当前run id一致,且偏移量还在"复制积压缓冲区"中。【注意是掉线,不是重启,因为重启后run id就会消失】
5.1、部分重同步执行流程
6、主从复制的问题
- 读写分离
- 复制数据延迟
- 读到过期数据
- 从节点故障
- 配置不一致
- 主从节点maxmemory配置不一致造成数据丢失
- 主从节点数据结构优化参数配置不一致造成内存不一致
- 规避完全重同步
- 第一次启动执行完全重同步时,选择在低峰时执行
- 调节复制积压缓冲区,避免完全重同步
- 规避复制风暴