一、是什么
主从复制,主机数据更新后根据配置和策略,自动同步到备机的 master/slave 机制,Master 以写为主,Slave 以读为主
二、能干啥
读写分离 容灾备份
三、怎么配
- 配从(库)不配主(库)
- 从库配置:slaveof 主库 IP 主库端口
每次与 master 断开后,都需要重新连接,除非你配置进 redis.conf 文件
info replication
- 修改配置文件细节操作
拷贝多个 redis.conf 文件
开启 daemonize yes
Pid 文件名字
指定端口
log 文件名字
Dump.rdb 名字
四、一主二从模式
slaveof 127.0.0.1 6379 // 通过此命令,使 6380,6381 服务作为 6379 的从机
五、薪火相传模式
slaveof 127.0.0.1 6379 // 通过此命令,使 6380 作为 6379 的从机
slaveof 127.0.0.1 6380 // 通过此命令,使 6381 作为 6380 的从机
六、反客为主模式
基于一主二从模式,主机挂了,两个从机中选一个作为新主机
slaveof no one // 选为主机
七、复制原理
Slave 启动成功连接到 master 后会发送一个 sync 命令
Master 接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,
在后台进程执行完毕后,master 将传送整个数据文件到 slave, 以完成一次完全同步
全量复制:而 slave 服务在接收到数据库文件数据后,将其存盘并加载到内存中。
增量复制:Master 继续将新的所有收集到的修改命令一次传给 slave, 完成同步
但只有是重新连接 master, 一次完全同步(全量复制)将会被自动执行
八、哨兵模式
- 是什么
反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库 - 怎么配
基于一主二从,6379 带着 6380,6381
在 redis 配置文件目录新建 sentinel.conf 文件
sentinel monitor 被监控数据库名字(自己起名字)127.0.0.1 6379 1
最后一个 1,表示主机挂了后,slave 投票看谁接替成为主机,得票数多少后成为主机
启动哨兵,redis-sentinel /etc/redis/sentinel.conf
一组 sentinel 能同时监控多个 Master