一、是什麼
主從複製,主機數據更新後根據配置和策略,自動同步到備機的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