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獲取