Redis 主從+哨兵叢集搭建
前置條件
這裡我建立了三台虛拟機來示範,分别按照上述安裝方式安裝好 Redis,三台虛拟機如下配置:
IP位址 端口号 角色 :
192.168.231.130 6379 主機(master)
192.168.231.132 6380 從機(slave)
192.168.231.131 6381 從機(slave)
配置redis.conf檔案
使用vi redis.conf指令打開編輯 redis.conf 配置檔案,如下
主從配置
主機配置:
bind:0.0.0.0
port:6379
protected-mode:no
daemonize:yes
logfile:./redis.log
requirepass:[email protected]
masterauth:[email protected]
• bind:0.0.0.0
Redis 預設隻允許本機通路,把 bind 修改為 0.0.0.0 表示允許所有遠端通路。如果想指定限制通路,可設定對應的 ip。
• port:6379
監聽端口預設為6379,想改其他也行。
• protected-mode:no
關閉保護模式,可以外部通路。
• daemonize:yes
設定為背景啟動。
• logfile:./redis.log
redis 日志檔案,生成後在 bin 目錄下可找到。
• requirepass:[email protected]
設定 redis 連接配接密碼。
• masterauth:[email protected]
slave 服務連接配接 master 的密碼。
從機配置:
bind:0.0.0.0
port:6379
protected-mode:no
daemonize:yes
logfile:./redis.log
requirepass:[email protected]
masterauth:[email protected]
replicaof 192.168.231.130 6379
需要使用replicaof指定主機(master)的IP位址和端口,需要注意的是老版本使用的是 slaveof;
• replicaof 192.168.231.130 6379
指定當本機為 slave 服務時,設定 master 服務的IP位址及端口,在 redis 啟動的時候會自動跟 master 進行資料同步,是以兩台從機都這樣配置即可。
修改防火牆設定
下面我們需要設定一下防火牆,否則主從機之間無法同步資料,指令如下,這裡根據自己設定的端口進行更改。
firewall-cmd --add-port=6379/tcp --permanent --zone=public
#重新開機防火牆(修改配置後要重新開機防火牆)
firewall-cmd –reload
Redis 哨兵模式搭建
這裡我們部署三個哨兵,每台伺服器一個哨兵,配置方式相同,如下
配置sentinel.conf檔案
//端口預設為26379。
port:26379
//關閉保護模式,可以外部通路。
protected-mode:no
//設定為背景啟動。
daemonize:yes
//日志檔案。
logfile:./sentinel.log
//指定主機IP位址和端口,并且指定當有2台哨兵認為主機挂了,則對主機進行容災切換。
sentinel monitor mymaster 192.168.231.130 6379 2
//當在Redis執行個體中開啟了requirepass,這裡就需要提供密碼。
sentinel auth-pass mymaster [email protected]
//這裡設定了主機多少秒無響應,則認為挂了。
sentinel down-after-milliseconds mymaster 3000
//主備切換時,最多有多少個slave同時對新的master進行同步,這裡設定為預設的1。
snetinel parallel-syncs mymaster 1
//故障轉移的逾時時間,這裡設定為三分鐘。
sentinel failover-timeout mymaster 180000
防火牆設定
firewall-cmd --add-port=26379/tcp --permanent --zone=public
#重新開機防火牆(修改配置後要重新開機防火牆)
firewall-cmd --reload
啟動三個哨兵