1.主從復制
主從復制:主從復制是redis實現高可用的基礎,哨兵模式和集群都是在主從復制的基礎之上實現高可用
主從復制實現數據的多機備份,以及讀寫分離(主服務器負責寫,從服務器只能讀)
缺陷:故障無法自動恢復,需要人工干預,寫操作的負載均衡。
2.主從復制的工作原理
? slave向主發送一個syn command,請求和主節點建立連接
? 主節點收到請求之后,他不管slave是第一次連接還是重新連接,主節點都會啟動一個后臺進程,執行BGSAVE,主節點會把所有修改數據記錄的命令加載到緩存和數據文件之中
? 數據文件創建完畢之后,master把數據文件傳送給slave,slave會把這個數據文件,先保存到硬盤,然后再加載到內存
3.主從復制的實驗
192.168.233.7 主
192.168.233.8 從1
192.168.233.9 從2
所有
systemctl stop firewalld
setenforce 0
主
vim /etc/redis/6379.conf
70行
137行
700gg
/etc/init.d/redis_6379 restart
從1 從2
vim /etc/redis/6379.conf
70gg
288gg
701gg
/etc/init.d/redis_6379 restart
主
tail -f /var/log/redis_6379.log
測試
主,從
redis-cli
主:
keys *
set test1
從1,2:
keys *
get test1
從:
set test2 2
主:
redis-cli info replication
從1:
/etc/init.d/redis_6379 stop
主
redis-cli info replication
4.哨兵模式
哨兵模式:先有主從再有哨兵。在主從復制的基礎之上,實現主節點故障的自動切換
4.1 哨兵模式的原理
哨兵:是一個分布式系統,用于在主從結構之間,對每臺redis的服務器進行監控。
主節點出現故障時,從節點通過投票的方式選擇一個新的master
哨兵模式也需要至少三個節點
工作流程:
每個哨兵節點每隔一秒,通過ping命令方式,檢測主從之間的心跳線。主節點在一定時間內沒有回復或者回復了錯誤的消息,這個時候,哨兵就會把主觀的任務主節點下線了,超過半數的哨兵節點認為主節點下線了,這個時候才會認為主節點是客觀下線。