您好,登錄后才能下訂單哦!
小編給大家分享一下如何使用三臺redis做主從+哨兵功能,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
這里采用1主2從的redis集群,3個sentinel搭建高可用redis集群。
redis-sentinel四大功能:
通知:當監控的某臺Redis實例發生問題時,可以通過API通知系統管理員和其他的應用程序。 監控:哨兵不斷的檢查master和slave是否正常的運行。 自動故障轉移:如果一個master不正常運行了,哨兵可以啟動一個故障轉移進程,將一個slave升級成為master,其他的slave被重新配置使用新的master,并且應用程序使用Redis服務端通知的新地址。 配置提供者:哨兵作為Redis客戶端發現的權威來源:客戶端連接到哨兵請求當前可靠的master的地址。如果發生故障,哨兵將報告新地址
1、安裝redis環境
最新安裝包:redis-5.0.7.tar.gz
系統:Linux
2、操作步驟
第一步:通過遠程掛載的辦法將 windows上的安裝包下載到 Linux本地。
第二步:安裝編譯工具
1、yum install gcc gcc-c++ make -y
第三步:解壓
1、tar zxvf redis-5.0.7.tar.gz -C /opt/
第四步:安裝
1、cd redis-5.0.7 2、make 3、make PREFIX=/usr/local/redis install
第五步:創建軟連接
ln -s /usr/local/redis/bin/* /usr/local/bin/
第六步:啟動安裝腳本,查看端口狀態
cd /redis-5.0.7/utils/ ./install_server.sh ###啟動腳本,注意:這步一路回車到底就行了 將最后一個文件路徑改為: /usr/local/redis/bin/redis-server netstat -natp | grep 6379
開、關redis與sentinal命令
1、redis-server /etc/redis/6379.conf 2、redis-sentinel /etc/redis/sentinel-6381.conf
除此之外,還可以用 redis_6379 控制其開啟關閉:
1、/etc/init.d/redis_6379 stop //關閉 3、/etc/init.d/redis_6379 restart //重啟
三臺redis配置:
1,添加master(6379.conf)配置文件必要參數
port 6379 masterauth linlin #如果做故障切換,不論主從節點都要填寫密碼且要保持一致 requirepass linlin
2,添加slave1(6380.conf)配置文件必要參數
port 6380 slaveof 10.211.55.7 6379 # ip為主redis的ip masterauth linlin #如果做故障切換,不論主從節點都要填寫密碼且要保持一致 requirepass linlin
2,添加slave2(6381.conf)配置文件必要參數
port 6381 slaveof 10.211.55.7 6381 # ip為主redis的ip masterauth linlin #如果做故障切換,不論主從節點都要填寫密碼且要保持一致 requirepass linlin
驗證主從數據是否一致
redis-cli -h 10.211.55.7 -p 6381 auth linlin info
cp sentinel.conf /usr/local/redis/conf/sentinel-26379.conf #復制源碼中的哨兵配置文件,復制出三個文件:
修改文件(vim /usr/local/redis/conf/sentinel-26379.conf):
port 26379 sentinel monitor mymaster 10.211.55.7 6379 2 sentinel auth-pass mymaster linlin
vim /usr/local/redis/conf/sentinel-26380.conf
port 26380 sentinel monitor mymaster 10.211.55.7 6379 2 sentinel auth-pass mymaster linlin
vim /usr/local/redis/conf/sentinel-26381.conf
port 26381 sentinel monitor mymaster 10.211.55.7 6379 2 sentinel auth-pass mymaster linlin
啟動三個sentinal服務命令:
redis-sentinel /etc/redis/sentinel-6379.conf
驗證主redis故障,slave是否能切換頂替master。。。
一、主從無法切換
確保sentinel.conf配置文件不是完全拷貝的,這個文件會在運行之后自動添加一些數據,導致拷貝之后沒有刪除無法自動切換主從
二、確保 redis.conf中兩個屬性 requirepass masterauth 這兩個密碼配置都有 ,sentinel.conf中 sentinel auth-pass mymaster (password) 存在。
三、每個redis.conf配置文件中 slaveof ip port 確保從redis配置中都有該項配置,確保sentinel.conf中
sentinel monitor mymaster masterip + port + num(該項為數字 一般設為 1 或者2 ) 確保該項在三臺服務器上都一致
四、通過redis-cli 客戶端連接上redis 進行auth認證 輸入命令 info查看master以及slave情況
五、遠程客戶端無法連接redis
redis版本在3.2.x之后出現這個問題的 一定是沒有把這個配置好 protected-mode no ; bind 注釋掉
看完了這篇文章,相信你對“如何使用三臺redis做主從+哨兵功能”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。