1、redis安裝redis
redis安裝有yum和編譯兩種方式,本文以編譯方式安裝,參考文檔爲官網安裝文檔bash
1.gcc安裝服務器
2.下載安裝包負載均衡
3.解壓編譯運維
4.修改配置文件ssh
主要配置修改以下:工具
5.製做啓動服務測試
6.啓動服務並加入開機啓動ui
7.RedisDesktopManager管理工具spa
該工具爲redis圖形化管理工具
軟件下載:https://pan.baidu.com/s/1no0IWcIEBapfehNi8dfCfw 密碼:7dvc
鏈接設置:
鏈接後效果
2、redis主從複製及持久化
1.從服務器設置
redis主從複製很簡單,只須要在從服務器配置文件新增一條配置便可
2.主從測試
2.1主機上寫入值
查看從機redis鍵值:
2.2從機寫入值
發現報錯,處於slave狀態redis沒法寫入。
3.持久化
redis持久化有RDB和AOF兩種方式,默認持久化爲RDB方式,關閉默認持久化只須要把默認配置註釋就行:
3、keepalived安裝配置
1.keepalived安裝
2.keepalived配置
相比master,slave配置有3點不一樣:
爲了不主從間的來回切換,也能夠設置nopreemt參數,開啓非搶佔式模式;不過當redis或者keepalived發生異常時都會觸發各類告警,運維人員會及時介入處理。
3.啓動並設置開機啓動
4、expect安裝
expect是一個提供自動交互的工具,本文notify_master中的腳本會使用到。
5、高可用腳本
1.redis-check.sh腳本
該腳本爲對redis狀態檢查
2.redis-master.sh腳本
該腳本爲本文高可用切換的關鍵。
monitor爲31的root密碼;slave腳本的ip應改成172.27.9.30;該腳本爲服務器切換爲master時執行的腳本,首先會檢查切換前與master的主從同步是否完成,而後利用expect工具跳到另外一臺服務器將其redis狀態更改成slave。
3.exp.sh腳本
slave腳本中的ip爲172.27.9.31;該腳本做用是跳到另外一臺服務執行slaveof命令。
6、測試
1.模擬redis服務異常
操做:停掉master的redis服務
預期:vip漂移,slave主機的redis狀態切換爲master
測試過程:
1.1中止master的redis服務
1.2查看虛ip
發現vip由30漂移至31
1.3查看redis狀態
31的redis狀態切換爲master
1.4回切
啓動30的redis服務
查看vip和redis狀態
30:
31:
結論:redis服務異常時會發生切換,從機會切換爲master狀態對外提供服務。
2.模擬keepalived服務異常
操做:停掉master的keepalived服務
預期:vip漂移,master的redis狀態切換爲slave,slave的redis狀態切換爲master
測試過程:
2.1中止master的keepalived服務
2.2查看vip和redis狀態
30:
31:
vip由30漂移至31且主從發生反轉;開啓keepalived服務會觸發回切。
結論:keepalived服務異常時會發生切換,主從會反轉。
3.模擬master宕機
操做:master關機
預期:vip漂移,slave的redis狀態切換爲master
測試過程:
3.1master服務器關機
3.2查看vip和redis狀態
vip漂移至31且狀態切換爲master;30開機會觸發回切。
結論:master宕機時會發生切換,從機切換爲master狀態對外提供服務。
至此完成redis高可用測試。