作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。
MySQL
PostgreSQL
Redis(本章节)
Etcd
Redis作为一个内存数据库,所以通过主从方式来保持数据库的高可用是很有必要的,今天这个小节就来介绍主从原理。
主从复制基于以下机制实现:
SLAVEOF <master_ip> <master_port> 或配置 slaveof 指令,向主节点发起连接请求。Redis 根据从节点的复制偏移量(Replication Offset)决定同步方式:
触发条件:
流程:
PSYNC 命令请求同步。BGSAVE 生成 RDB 快照,同时缓存期间的写命令到复制缓冲区。触发条件:
流程:
PSYNC 命令,并携带上次复制的偏移量。# 主节点配置
repl-backlog-size 1mb # 复制积压缓冲区大小
repl-backlog-ttl 3600 # 缓冲区保留时间(秒)
min-slaves-to-write 1 # 至少 N 个从节点在线才接受写操作
min-slaves-max-lag 10 # 从节点延迟不超过 N 秒
# 从节点配置
slave-read-only yes # 从节点只读(默认)
repl-diskless-sync no # 是否使用无盘复制(网络传输 RDB)