redis 主從 + 哨兵模式集群部署(3 台機器部署方案)


前言

本文只講如何部署,然后會貼出具體配置,以及如何驗證是否部署成功(redis 版本采用 4.0.6 )。既不會介紹 redis 如何安裝(本人采用源碼安裝方式),也不會涉及主從復制,哨兵模式具體原理及工作機制等內容。 后續會再補充 ~

配置

關於 redis 的配置文件 redis.conf 的配置項,請參考

Redis配置文件詳解, 下面貼出的配置只會粗略講解。

機器分配

名稱 機器 1 機器2 機器2
host 10.211.55.8 10.211.55.9 10.211.55.11
端口 6379 6379 6379
角色1 master slave 01 slave 02
角色2 sentinel 01 sentinel 02 sentinel 03

提示

看到這里,請先提前關閉三台機器的防火牆。防火牆不關閉,會出現 master 的數據不會同步到 slave 節點的情況

-- 關閉防火牆! -- 關閉防火牆! -- 關閉防火牆!

機器1 配置(master)(10.211.55.8)

redis.conf

# 如果為 yes 只能通過(127.0.0.1)訪問 protected-mode no # 端口 port 6379 # 用守護線程的方式啟動 daemonize yes # pid 文件 pidfile ./redis.pid # 日志 logfile "" # 數據庫數量 databases 16 # 開啟 rdb 並設置備份規則 save 900 1 save 300 10 save 60 10000 # rdb 以及 aof 備份文件 dir ./ # rbd 文件名 dbfilename dump.rdb # 密碼 requirepass abc123!@# # 主從配置,slave 訪問 master 需要密碼 masterauth abc123!@# # Sentinel 模塊的配置 slave-priority 100 

sentinel.conf

protected-mode no daemonize yes # sentinel 端口 port 26379 dir ./ # 注意 sentinel monitor mymaster 10.211.55.8 6379 2 # 密碼 sentinel auth-pass mymaster abc123!@# sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 logfile ./sentinel.log 

機器 2 配置(slave 01)(10.211.55.9)

slave 節點的配置只比 master 多了一個slaveof 10.211.55.8 6379

redis.conf

protected-mode no port 6379 daemonize yes pidfile ./redis.pid logfile "" databases 16 save 900 1 save 300 10 save 60 10000 dir ./ dbfilename dump.rdb requirepass abc123!@# # 跟 master 的區別,多了此配置 slaveof 10.211.55.8 6379 masterauth abc123!@# slave-priority 100 

sentinel.conf

protected-mode no daemonize yes # sentinel 端口 port 26379 dir ./ sentinel monitor mymaster 10.211.55.8 6379 2 sentinel auth-pass mymaster QpLpYnh619! sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 logfile ./sentinel.log 

機器 3 配置 (slave 02) (10.211.55.11)

省略。。 跟機器 2 配置一樣!!!! 當然如果密碼不一樣,你就改一下

驗證

請確認防火牆已經關閉 !!!!!!

首先驗證主從復制,然后再驗證哨兵模式是否成功,

源碼安裝方式,如果不指定參數,redis 啟動腳本默認安裝在 /usr/local/bin/ 下面

配置文件還是在 redis 的安裝目錄

驗證主從復制

  1. 進入master 的 redis 解壓目錄

  2. 啟動 redis /usr/local/bin/redis-server redis.conf

  3. 分別進入兩個 slave 機器的 redis 目錄 ,執行步驟 2

  4. 在 master 上通過客戶端連接 redis 服務端,即執行以下命令

     	/usr/local/bin/redis-cli -a abc123![@#](https://my.oschina.net/u/2839266) ------------------ abc123![@#](https://my.oschina.net/u/2839266) 是密碼 
  5. 在 redis 命令行上,執行 info replication 命令, 驗證主從關系

     # Replication role:master (當前節點為 master) connected_slaves:2 (2 個slave 節點) slave0:ip=10.211.55.9,port=6379,state=online,offset=535,lag=1 slave1:ip=10.211.55.11,port=6379,state=online,offset=535,lag=1 master_replid:dbe7d07a45a521b1feb44117f9872bfde259aec3 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:535 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:535 
  6. 在 master 上添加數據,看 slave 上是否會同步數據

驗證 sentinel

  1. 分別在三台機器上,進入 redis 解壓目錄,依次執行

     /usr/local/bin/redis-sentinel sentinel.conf 
  2. 連接任意 sentinel 節點,

     redis-cli -h 10.211.55.9 -p 26379 -a abc123![@#](https://my.oschina.net/u/2839266) 
  3. 在 redis 命令行上,執行 info sentinel 命令, 驗證 sentinel 狀態,

     # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=mymaster,status=ok,address=10.211.55.9:6379,slaves=2,sentinels=3 

總結

以上配置,親測有效! 如有疑問,請留言~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM