redis從2.8以上纔有添加哨兵功能(sentinel)所以要這功能的需要2.8以上的版本纔可以,下載地址:http://www.redis.cn/download.html
話不多說,直接實操給第一次搭主從機制的學友們看。
架構環境
系統:CentOS 6.5 64位
ip:192.168.18.136 (主)
ip:192.168.18.137 (從)
1.把下載完的redis包放進自己想要存放的目錄裏,並解壓它進行編譯
#tar -zxvf redis-3.2.1.tar.gz
#cd redis-3.2.1
#make
#cd src
#make test //測試是否有問題,如果報沒問題則編譯成功,一般不需要這一步,想看看的可以做這一步,
make test有可能報錯圖下的錯,只要安裝下tcl就解決了。
#yum install tcl* -y //執行完再make test就可以了。
2.完成以上操作之後,修改主redis.conf配置文件,其餘參數按照需要修改即可。
bind 0.0.0.0 //可以任何IP連接
daemonize yes //後臺運行
pidfile /opt/redis-3.2.1/run/redis_6379.pid //服務運行的PID號,路徑可以自定義,不需要看的可以默認。
logfile "/opt/redis-3.2.1/log/redis.log" //redis日誌存放的地方,默認是沒有的,需要手動創建
dbfilename redis.rdb //rdb庫的名字,可以自定義,無需修改可以默認
dir /opt/redis-3.2.1/data/ //rdb庫存放的路徑
從的redis.conf跟主一樣,只修改slaveof。
bind 0.0.0.0
daemonize yes
pidfile /opt/redis-3.2.1/run/redis_6379.pid
logfile "/opt/redis-3.2.1/log/redis.log"
dbfilename redis.rdb
dir /opt/redis-3.2.1/data/
slaveof 192.168.18.136 6379 //主的ip地址及主redis端口。
3.啓動兩邊的redis
#./redis-server /opt/redis-3.2.1/redis.conf //啓動主的,再啓動從
4.查看兩邊的狀態
主:
從
5.配置sentinel
#vim /opt/redis/sentinel.conf
sentinel monitor mymaster 192.168.18.136 6379 1
sentinel down-after-milliseconds mymaster1 5000
sentinel failover-timeout mymaster 900000
sentinel parallel-syncs master1 1
logfile "/opt/redis/log/sentinel.log" //手動添加生成日誌路徑
daemonize yes //手動添加後臺運行參數
protected-mode no //手動添加mode參數,不然哨兵集羣會連接不上,做單機的話就不需要配置這個
啓動哨兵
#./redis-sentinel /opt/redis/sentinel.conf //能看到已經加進來了
6.故障演示
把主服務給宕了
#./redis-cli -h 192.168.18.136 -p 6379 shutdown //表示把192.168.9.18這臺redis 關閉
這張圖片很清晰地反應到,redis sentinel 監控到主的redis服務停止,然後自動把從的redis切換到主。
當我們再啓動宕掉的那臺之後,你會發現它會自動變成從的。
至此主從機制就配置完成了。後面會補上哨兵集羣。