redis-(偽)主從集群搭建
為了避免Redis的單點(diǎn)故障問題,可以搭建一個(gè)redis集群,將數(shù)據(jù)備份到集群中的其他節(jié)點(diǎn)上,如果其中一個(gè)
redis節(jié)點(diǎn)宕機(jī),則由集群中的其他節(jié)點(diǎn)頂上。redis的主從集群是一個(gè)“一主多從”的讀寫分離集群。集群中的
master節(jié)點(diǎn)負(fù)責(zé)客戶端的讀寫請(qǐng)求,slave節(jié)點(diǎn)只能處理客戶端的讀請(qǐng)求。之所以要將集群搭建為讀寫分離模式,
主要是因?yàn)閷?duì)于數(shù)據(jù)庫(kù)集群而言寫操作壓力一般都比較小,壓力大多數(shù)來(lái)自于讀操作請(qǐng)求。所以,只有一個(gè)節(jié)點(diǎn)
負(fù)責(zé)處理寫操作請(qǐng)求即可。
配置分析
repl-disable-tcp-nodelay

該屬性用于設(shè)置是否禁用TCP 特性 tcp-nodelay。設(shè)置為yes 則禁用tcp-nodelay,此時(shí)master 與 slave 間的通信會(huì)產(chǎn)生延遲,但使用的TCP 包數(shù)量會(huì)較少,占用的網(wǎng)絡(luò)帶寬會(huì)較小。相反,如果設(shè)置為no,則網(wǎng)絡(luò)延遲會(huì)變小,但使用的TCP包數(shù)量會(huì)較多,相應(yīng)占用的網(wǎng)絡(luò)帶寬會(huì)大。
tcp-nodelay:為了充分復(fù)用網(wǎng)絡(luò)帶寬,TCP 總是希望發(fā)送盡可能大的數(shù)據(jù)塊。為了達(dá)到該目的,TCP 中使用了一個(gè)名為Nagle 的算法。
Nagle算法的工作原理是,網(wǎng)絡(luò)在接收到要發(fā)送的數(shù)據(jù)后,并不直接發(fā)送,而是等待著數(shù)據(jù)量足夠大(由TCP網(wǎng)絡(luò)特性決定)時(shí)再一次性發(fā)送出去。這樣,網(wǎng)絡(luò)上傳輸?shù)挠行?shù)據(jù)比例就得到了大大提升,無(wú)效數(shù)據(jù)傳遞量極大減少,于是就節(jié)省了網(wǎng)絡(luò)帶寬,緩解了網(wǎng)絡(luò)壓力。
requirepass&masterauth


因?yàn)槲覀円罱ㄖ鲝募海颐總€(gè)主機(jī)都有可能會(huì)是Master,所以最好不要設(shè)置密碼驗(yàn)證屬性requirepass。如果真需要設(shè)置,一定要每個(gè)主機(jī)的密碼都設(shè)置為相同的。此時(shí)每個(gè)配置文件中都要設(shè)置兩個(gè)完全相同的屬性:requirepass與masterauth。其中requirepass 用于指定當(dāng)前主機(jī)的訪問密碼,而masterauth 用于指定當(dāng)前 slave訪問 master 時(shí)向 master 提交的訪問密碼,用于讓 master 驗(yàn)證自己身份是否合法。
replica-priority

replica-priority是Redis Sentinel(哨兵)用于主節(jié)點(diǎn)故障時(shí)選擇從節(jié)點(diǎn)升級(jí)為主節(jié)點(diǎn)的關(guān)鍵依據(jù)。
當(dāng)主節(jié)點(diǎn)因故障(如宕機(jī)、網(wǎng)絡(luò)斷開)無(wú)法提供服務(wù)時(shí),Sentinel會(huì)從所有健康的從節(jié)點(diǎn)中,選擇優(yōu)先級(jí)最高的從節(jié)點(diǎn)晉升為新主節(jié)點(diǎn),以保證集群的高可用性。
取值規(guī)則:數(shù)值越低,優(yōu)先級(jí)越高。例如,從節(jié)點(diǎn)A(priority=10)會(huì)優(yōu)先于從節(jié)點(diǎn)B(priority=25)、從節(jié)點(diǎn)C(priority=100)被選為新主節(jié)點(diǎn)。若從節(jié)點(diǎn)的replica-priority設(shè)置為0,則該從節(jié)點(diǎn)永遠(yuǎn)不會(huì)被Sentinel選為新主節(jié)點(diǎn)。
Redis默認(rèn)給所有從節(jié)點(diǎn)分配100的優(yōu)先級(jí),意味著若未修改任何從節(jié)點(diǎn)的優(yōu)先級(jí),Sentinel會(huì)優(yōu)先選擇復(fù)制進(jìn)度最同步(replica_offset最大)的從節(jié)點(diǎn)作為新主節(jié)點(diǎn)(當(dāng)優(yōu)先級(jí)相同時(shí),復(fù)制進(jìn)度是第二選擇條件)。
默認(rèn)值100是一個(gè)“中性”設(shè)置,允許用戶根據(jù)實(shí)際需求調(diào)整優(yōu)先級(jí)(如降低關(guān)鍵從節(jié)點(diǎn)的優(yōu)先級(jí)以優(yōu)先晉升)。
文件配置





進(jìn)入redis6381.conf和redis6382.conf文件后進(jìn)行如下操作,注意替換的內(nèi)容!

配置一主兩從關(guān)系


配置


添加元素驗(yàn)證主從





注意:如果關(guān)閉(shutdown)了其中一個(gè)從節(jié)點(diǎn),那么重新啟動(dòng)從節(jié)點(diǎn)之后還是要執(zhí)行slaveof命令才可以指定主從關(guān)系的!!!






posted on 2025-10-21 10:52 jaba 閱讀(14) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)