Docker配置redis主從哨兵

純潔的程式碼發表於2020-02-25
1.從docker倉庫拉取redis映象
[Shell]
純文字檢視
複製程式碼
1
docker pull redis



2.在/home下分別建立redis-6379-data,redis-6380-data,redis-6381-data


3.拷貝/etc/redis/redis.conf 到 /home下

4.複製redis.conf為redis-6379.conf, redis-6380.conf,redis.6381.con並且分別修改其中的配置, logfile指定不同的檔案
[Shell]
純文字檢視
複製程式碼
01
02
03
04
05
06
07
08
09
10
11
port 6380
logfile "redis-6380.log"
dir /data
appendonly yes
appendfilename appendonly.aof
slaveof 127.0.0.1 6379


5.docker啟動3個redis
[Shell]
純文字檢視
複製程式碼
1
docker run -tdi -v /home/data:/data /home/redis-6379.conf:/usr/local/ect/redis/redis.conf -p 6379:6379 redis

[AppleScript]
純文字檢視
複製程式碼
1
docker run -tdi -v /home/data:/data /home/redis-6380.conf:/usr/local/ect/redis/redis.conf -p 6380:6380 redis

[AppleScript]
純文字檢視
複製程式碼
1
docker run -tdi -v /home/data:/data /home/redis-6381.conf:/usr/local/ect/redis/redis.conf -p 6381:6381 redis


6.通過redis-cli分別連入建立好的redis伺服器,測試主從是否配好

7.配置redis-sentinelm,建立三個sentinel檔案,內容如下
[AppleScript]
純文字檢視
複製程式碼
01
02
03
04
05
06
07
08
09
10
11
port 26379
dir "/data"
logfile "sentinel-26379.log"
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 10000
sentinel failover-timeout mymaster 60000

只修改日誌的檔名即可

8.通過docker啟動三個sentinel
[Shell]
純文字檢視
複製程式碼
1
docker run -dit -v /home/sentinel-26379.conf:/usr/local/etc/redis/sentinel.conf -p 26379:26379 redis redis-sentinel /usr/local/etc/redis/sentinel.conf

[AppleScript]
純文字檢視
複製程式碼
1
docker run -dit -v /home/sentinel-26380.conf:/usr/local/etc/redis/sentinel.conf -p 26380:26380 redis redis-sentinel /usr/local/etc/redis/sentinel.conf
[Shell]
純文字檢視
複製程式碼
1
docker run -dit -v /home/sentinel-26381.conf:/usr/local/etc/redis/sentinel.conf -p 26381:26381 redis redis-sentinel /usr/local/etc/redis/sentinel.conf


9.停止redis的master節點
docker stop master節點的containerid

10.連入從節點,檢視主從狀態
[Shell]
純文字檢視
複製程式碼
1
2
redis-cli -p 6380
info replication


11.稍等幾十秒,從節點就會自動變成主節點

哨兵模式的原理採用了心跳機制和投票裁決機制。

更多技術資訊可關注:itheimaGZ獲取



相關文章