三臺服務(wù)器上離線安裝redis哨兵集群航夺,一主二從三哨兵
系統(tǒng)安裝好gcc環(huán)境媳叨,(不然編譯redis會報錯)腥光。依舊不知道怎么離線安裝gcc環(huán)境的可查看CentOS下離線安裝gcc環(huán)境,圖文詳細(xì)
下載
點(diǎn)擊官網(wǎng)地址下載Linux版的redis
http://download.redis.io/releases/redis-5.0.4.tar.gz
上傳
put D:\AppStore\redis\redis-5.0.4.tar.gz /root
安裝
tar xzf redis-5.0.4.tar.gz
mv redis-5.0.4 /usr/local/redis
cd /usr/local/redis/redis-5.0.4
make
make install
如果執(zhí)行make報錯如下
致命錯誤:jemalloc/jemalloc.h:沒有那個文件或目錄
則使用
make MALLOC=libc
節(jié)點(diǎn)配置
現(xiàn)有三臺虛擬機(jī)糊秆,那就按照一主二從來弄吧武福。進(jìn)入redis.conf更改如下
192.168.1.115(主節(jié)點(diǎn))
bind 192.168.1.115
daemonize yes
masterauth 666666
requirepass 666666
pidfile /st/redis/pid/redis_6379.pid
logfile "/st/redis/log/redis.log"
dir /st/redis/db/
192.168.1.113(從節(jié)點(diǎn)1)
bind 192.168.1.113
daemonize yes
masterauth 666666
requirepass 666666
replicaof 192.168.1.115 6379
pidfile /st/redis/pid/redis_6379.pid
logfile "/st/redis/log/redis.log"
dir /st/redis/db/
192.168.1.112(從節(jié)點(diǎn)2)
bind 192.168.1.112
daemonize yes
masterauth 666666
requirepass 666666
replicaof 192.168.1.115 6379
pidfile /st/redis/pid/redis_6379.pid
logfile "/st/redis/log/redis.log"
dir /st/redis/db/
哨兵配置
既然有有三臺虛擬機(jī),那就別浪費(fèi)了痘番,直接在這三臺上配三個哨兵捉片。只不過,如果掛了一臺服務(wù)器汞舱,該節(jié)點(diǎn)會掛伍纫,該服務(wù)器上的哨兵也會掛,但是還有兩個哨兵能工作昂芜,所以也能接受莹规。不然就為哨兵單獨(dú)開幾個服務(wù)器。
進(jìn)入sentinel.conf更改如下
192.168.1.115
daemonize yes
sentinel monitor mymaster 192.168.1.115 6379 2
sentinel auth-pass mymaster 666666
pidfile /st/redis/pid/redis-sentinel.pid
logfile "/st/redis/log/redis-sentinel.log"
dir /st/redis/tmp
192.168.1.113
daemonize yes
sentinel monitor mymaster 192.168.1.115 6379 2
sentinel auth-pass mymaster 666666
pidfile /st/redis/pid/redis-sentinel.pid
logfile "/st/redis/log/redis-sentinel.log"
dir /st/redis/tmp
192.168.1.112
daemonize yes
sentinel monitor mymaster 192.168.1.115 6379 2
sentinel auth-pass mymaster 666666
pidfile /st/redis/pid/redis-sentinel.pid
logfile "/st/redis/log/redis-sentinel.log"
dir /st/redis/tmp
啟動節(jié)點(diǎn)
從主到次泌神,各個節(jié)點(diǎn)運(yùn)行良漱,并檢驗
/usr/local/redis/redis-5.0.4/src/redis-server /usr/local/redis/redis-5.0.4/redis.conf
netstat -tulnp |grep redis
啟動哨兵
各個哨兵運(yùn)行,并檢驗
/usr/local/redis/redis-5.0.4/src/redis-sentinel /usr/local/redis/redis-5.0.4/sentinel.conf
ps -ef |grep redis
檢查
檢查主從復(fù)制欢际,登錄主節(jié)點(diǎn)寫入信息母市,看看從節(jié)點(diǎn)有沒有接收到信息
/usr/local/redis/redis-5.0.4/src/redis-cli -h 192.168.1.115
auth 666666
set name 'lgx'
登錄從節(jié)點(diǎn),查看能否收到信息
/usr/local/redis/redis-5.0.4/src/redis-cli -h 192.168.1.113
auth 666666
get name 'lgx'
檢查哨兵監(jiān)控
/usr/local/redis/redis-5.0.4/src/redis-sentinel -p 26379
sentinel master mymaster
嫌棄使用命令前一堆的目錄损趋,就注冊個全局的
ln -s /usr/local/redis/redis-5.0.4/src/redis-sentinel /usr/bin/redis-sentinel
ln -s /usr/local/redis/redis-5.0.4/src/redis-server /usr/bin/redis-server
ln -s /usr/local/redis/redis-5.0.4/src/redis-cli /usr/bin/redis-cli
注意事項
上生產(chǎn)記得檢查:防火墻患久,安全組,redis密碼,綁定的ip蒋失,各文件的存放目錄返帕。
這是默認(rèn)的目錄,避免忘記配置又不知道放在哪里高镐。
#redis節(jié)點(diǎn)
pidfile /var/run/redis_6379.pid
logfile ""
dbfilename dump.rdb
dir ./
#redis哨兵
pidfile /var/run/redis-sentinel.pid
logfile ""
dir /tmp
這是在防火墻中添加節(jié)點(diǎn)端口溉旋,哨兵端口
firewall-cmd --permanent --add-port=6379/tcp
firewall-cmd --permanent --add-port=26379/tcp//添加某個端口
firewall-cmd --reload //然后,重新加載
測試報告
主節(jié)點(diǎn)宕機(jī)后嫉髓,立馬重啟观腊,主節(jié)點(diǎn)切換需要一段時間,大概幾秒鐘算行,這期間若操作redis梧油,會因為連接主節(jié)點(diǎn)不成功而導(dǎo)致操作失敗。
切換的時候州邢,節(jié)點(diǎn)及哨兵的配置會被自動修改儡陨,如從節(jié)點(diǎn)的replicaof參數(shù),哨兵的sentinel monitor mymaster參數(shù)量淌。
宕機(jī)重啟后骗村,節(jié)點(diǎn)及哨兵無法自動恢復(fù),需要手工啟動呀枢。我還以為daemonize yes是開機(jī)自啟動的意思胚股,原來是可以后臺運(yùn)行,不然退出redis命令行頁面就會退出裙秋。