Redis集群模式一共有3中,分別為主從集群、哨兵集群、Cluster集群(分片集群)。
成都創(chuàng)新互聯(lián)從2013年成立,先為印江等服務(wù)建站,印江等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為印江企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。主從集群:優(yōu)點(diǎn)是高可用、高并發(fā),讀寫(xiě)分離,數(shù)據(jù)持久化,缺點(diǎn)無(wú)法故障自動(dòng)恢復(fù),海量數(shù)據(jù)存儲(chǔ)和高并發(fā)寫(xiě)的問(wèn)題。
哨兵集群:優(yōu)點(diǎn)是擁有主從集群的優(yōu)點(diǎn)外,增加故障自動(dòng)恢復(fù)功能,缺點(diǎn)同樣是海量數(shù)據(jù)存儲(chǔ)和高并發(fā)寫(xiě)的問(wèn)題。
分片集群:集群中有多個(gè)master,每個(gè)master保存不同數(shù)據(jù),每個(gè)master都可以有多個(gè)slave節(jié)點(diǎn),master之間通過(guò)ping監(jiān)測(cè)彼此健康狀態(tài),客戶端請(qǐng)求可以訪問(wèn)集群任意節(jié)點(diǎn),最終 都會(huì)被轉(zhuǎn)發(fā)到正確節(jié)點(diǎn)。
1、環(huán)境準(zhǔn)備利用虛擬機(jī)創(chuàng)建了5臺(tái)虛擬環(huán)境,分別為一主、五從(三個(gè)哨兵節(jié)點(diǎn)也設(shè)置成從節(jié)點(diǎn))、三哨兵節(jié)點(diǎn),在搭建哨兵集群時(shí)須提前完成主從集群的搭建,關(guān)于主從集群的搭建參考上篇
名稱 | IP地址 | 端口 | 說(shuō)明 |
redis主節(jié)點(diǎn) | 192.168.235.135 | 6379 | 主節(jié)點(diǎn) |
redis從節(jié)點(diǎn)01 | 192.168.235.136 | 6379 | 從節(jié)點(diǎn) |
redis從節(jié)點(diǎn)02 | 192.168.235.137 | 6379 | 從節(jié)點(diǎn) |
redis哨兵01 | 192.168.235.138 | 26379 | 哨兵節(jié)點(diǎn) |
redis哨兵02 | 192.168.235.139 | 26379 | 哨兵節(jié)點(diǎn) |
redis哨兵03 | 192.168.235.140 | 26379 | 哨兵節(jié)點(diǎn) |
Redis主節(jié)點(diǎn)redis.conf配置文件中添加一行參數(shù),即masterauth參數(shù),原因是哨兵集群中如果該主節(jié)點(diǎn)宕機(jī)的話,會(huì)自動(dòng)將其他從節(jié)點(diǎn)中的一個(gè)變成主節(jié)點(diǎn),原先的主節(jié)點(diǎn)恢復(fù)后變成現(xiàn)有主節(jié)點(diǎn)的從節(jié)點(diǎn):
#啟用守護(hù)進(jìn)程后,開(kāi)啟該功能后,redis默認(rèn)后臺(tái)運(yùn)行
daemonize yes
#指定Redis監(jiān)聽(tīng)端口,默認(rèn)端口為6379,如果指定0端口,表示Redis不監(jiān)聽(tīng)TCP連接
port 6379
#綁定的一個(gè)或多個(gè)主機(jī)地址,默認(rèn)為127.0.0.1,未來(lái)方便測(cè)試成0.0.0.0,生產(chǎn)環(huán)境中不能為0.0.0.0
bind 0.0.0.0
#日志記錄方式,默認(rèn)為標(biāo)準(zhǔn)輸出,如果配置為redis為守護(hù)進(jìn)程方式運(yùn)行,而這里又配置為標(biāo)準(zhǔn)輸出,則日志將會(huì)發(fā)送給/dev/null,這里改成保留日志文件
logfile redis.log
#持久化數(shù)據(jù)存儲(chǔ),900秒(15分鐘)內(nèi)有1個(gè)更改,300秒(5分鐘)內(nèi)有10個(gè)更改,60秒內(nèi)有10000個(gè)更改
save 900 1 300 10 60 10000
#指定本地?cái)?shù)據(jù)庫(kù)文件名,默認(rèn)值為dump.rdb
dbfilename sgtms.rdb
#注指定工作目錄,默認(rèn)即可
dir .
#設(shè)置Redis連接密碼,如果配置了連接密碼,客戶端在連接Redis時(shí)需要通過(guò)auth命令提供密碼,默認(rèn)關(guān)閉
requirepass sgtms2017
#程序PID記錄方式
pidfile redis.pid
#從節(jié)點(diǎn)在復(fù)制主節(jié)點(diǎn)數(shù)據(jù)時(shí)需要密碼
masterauth sgtms2017
3、哨兵節(jié)點(diǎn)sentinel.conf配置文件修改#啟用守護(hù)進(jìn)程后,開(kāi)啟該功能后,redis默認(rèn)后臺(tái)運(yùn)行
daemonize yes
#指定Redis監(jiān)聽(tīng)端口,默認(rèn)端口為6379,如果指定0端口,表示Redis不監(jiān)聽(tīng)TCP連接
port 26379
#綁定的一個(gè)或多個(gè)主機(jī)地址,默認(rèn)為127.0.0.1,未來(lái)方便測(cè)試成0.0.0.0,生產(chǎn)環(huán)境中不能為0.0.0.0
bind 0.0.0.0
#日志記錄方式,默認(rèn)為標(biāo)準(zhǔn)輸出,如果配置為redis為守護(hù)進(jìn)程方式運(yùn)行,而這里又配置為標(biāo)準(zhǔn)輸出,則日志將會(huì)發(fā)送給/dev/null,這里改成保留日志文件
logfile sentinel_26379.log
#程序PID記錄方式
pidfile sentinel_26379.pid
#設(shè)置Redis連接密碼,如果配置了連接密碼,客戶端在連接Redis時(shí)需要通過(guò)auth命令提供密碼,默認(rèn)關(guān)閉
requirepass sgtms2017
#配置master的登陸密碼,mymaster是你配置的master名稱(可自定義)、主節(jié)點(diǎn)的IP地址、端口,以及需要配置(選舉人數(shù))
sentinel monitor mymaster 192.169.1.201 6379 2
#配置master的登陸密碼,mymaster是你配置的master名稱
sentinel auth-pass mymaster sgtms2017
#30秒內(nèi)master無(wú)響應(yīng)則認(rèn)為master掛掉
sentinel down-after-milliseconds mymaster 30000
4、哨兵集群?jiǎn)?dòng)Redis服務(wù)主從集群?jiǎn)?dòng),具體如下:
#主從集群?jiǎn)?dòng),一主五從均需要啟動(dòng)
[root@localhost bin]# ./redis-server ../redis.conf
#查看Redis服務(wù)是否正常啟動(dòng)
[root@localhost bin]# netstat -anpl | grep 6379
#哨兵服務(wù)節(jié)點(diǎn)啟動(dòng),三個(gè)哨兵服務(wù)啟動(dòng)方式一致
[root@localhost bin]# ./redis-sentinel ../sentinel.conf
[root@localhost bin]# netstat -anpl | grep 26379
5、哨兵集群測(cè)試驗(yàn)證哨兵集群是否部署成功,下圖展示了,哨兵服務(wù)監(jiān)控到的master節(jié)點(diǎn)、slaves數(shù)量和sentinel數(shù)
6、故障轉(zhuǎn)移測(cè)試將主master節(jié)點(diǎn)的redis停掉,在任意哨兵節(jié)點(diǎn)可以查到,集群中原主master節(jié)點(diǎn)已經(jīng)有原來(lái)的192.168.235.135變更為192.168.235.138,登錄任意哨兵節(jié)點(diǎn):
注意登錄哨兵節(jié)點(diǎn)是需要加端口號(hào)的,哨兵節(jié)點(diǎn)默認(rèn)端口號(hào)為26379
[root@localhost bin]# ./redis-cli -p 26379
127.0.0.1:26379>auth sgtms2017
OK
127.0.0.1:26379>info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_tilt_since_seconds:-1
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.235.138:6379,slaves=5,sentinels=3
127.0.0.1:26379>
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧