溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行Redis 6.X Sentinel哨兵集群搭建

發(fā)布時(shí)間:2021-11-01 10:15:49 來源:億速云 閱讀:159 作者:柒染 欄目:系統(tǒng)運(yùn)維

如何進(jìn)行Redis 6.X Sentinel哨兵集群搭建,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

碼哥帶大家完成在 CentOS 7 中安裝 Redis 6.x 教程。在學(xué)習(xí) Redis  之前,我們需要先搭建一套哨兵環(huán)境。機(jī)器有限,實(shí)現(xiàn)目標(biāo)是一臺(tái)機(jī)器上搭建 6 個(gè)節(jié)點(diǎn),構(gòu)成一主兩從三哨兵集群模式。

下載解壓

可直接到 Redis 官網(wǎng)下載最新穩(wěn)定包,地址:https://redis.io/download?;蛘呤褂?命令:sudo wget  http://download.redis.io/releases/redis-6.0.9.tar.gz 下載安裝包.。

  1. 碼哥統(tǒng)一把軟件包放在 /opt/soft 目錄下,并創(chuàng)建目錄 mkdir redisSentinel。在 redisSentinel 目錄下執(zhí)行  mkdir 6479 6480 6481 26379 26380 26381 6479 6480 6481分別對(duì)應(yīng) Redis 主從節(jié)點(diǎn) redis.conf  配置模板。

  2. tar -zxf redis-6.0.9.tar.gz -C redisSentinel解壓到 redisSentinel 目錄中。

make 編譯

在編譯之前我們需要確認(rèn) gcc 版本,自 redis 6.0.0 之后,編譯 redis 需要支持 C11 特性,C11 特性在 4.9  中被引入。Centos 7 默認(rèn) gcc 版本為 4.8.5,所以需要升級(jí)gcc版本。

否則在編譯過程中會(huì)報(bào)錯(cuò)。

解決方式

yum -y install gcc gcc-c++ make tcl yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils scl enable devtoolset-9 bash

升級(jí)之后便可解決 make 報(bào)錯(cuò)問題。

  • 注意:scl命令啟用只是臨時(shí)的,退出xshell或者重啟就會(huì)恢復(fù)到原來的gcc版本。如果要長(zhǎng)期生效的話,執(zhí)行如下 sudo echo "source  /opt/rh/devtoolset-9/enable" >>/etc/profile。

cd /opt/soft/redisSentinel/redis-6.0.9 切換到目錄執(zhí)行 make 。

編譯完成使用 make install 對(duì) redis 進(jìn)行安裝 ,命令:sudo make install。

主從復(fù)制

將 redis.conf 復(fù)制三份到 6479 6480 6481 目錄下,并修改配置:

Master

# master 端口 port 6479 # 讓 Redis 可以跨網(wǎng)訪問 bind 172.16.90.152 # 后臺(tái)執(zhí)行 daemonize yes pidfile /var/run/redis_6479.pid

slave

主要在于端口號(hào)不同,分別是 6480、6481,并且在末尾添加 replicaof 172.16.90.152 6479

# master 端口 port 6480 # 讓 Redis 可以跨網(wǎng)訪問 bind 172.16.90.152 # 后臺(tái)執(zhí)行 daemonize yes # 指定 masterip master port replicaof 172.16.90.152 6479

分別啟動(dòng) Redis

通過 redis-server 啟動(dòng)主從節(jié)點(diǎn)。

./redis-6.0.9/src/redis-server redis-6479/redis.conf ./redis-6.0.9/src/redis-server redis-6480/redis.conf ./redis-6.0.9/src/redis-server redis-6481/redis.conf

檢查集群狀態(tài)

./redis-6.0.9/src/redis-cli -p 6479 info Replication

配置哨兵集群

將哨兵配置文件分別復(fù)制到 sentinel26380 sentinel26381 sentinel26382,需要注意的是每個(gè)文件的端口配置以及  sentinel monitor mymaster 172.16.90.152 6479 2 中最后的數(shù)字 2,哨兵集群匯總每個(gè)節(jié)點(diǎn)必須一致。

分別修改這三個(gè)配置文件:

# 綁定IP bind 0.0.0.0 # 后臺(tái)運(yùn)行 daemonize yes # 默認(rèn)yes,沒指定密碼或者指定IP的情況下,外網(wǎng)無法訪問 protected-mode no # 哨兵的端口,客戶端通過這個(gè)端口來發(fā)現(xiàn)redis port 26380 # 這個(gè)文件會(huì)自動(dòng)生成(如果同一臺(tái)服務(wù)器上啟動(dòng),注意要修改為不同的端口) pidfile /var/run/redis-sentinel-26380.pid # sentinel監(jiān)控的master的名字叫做mymaster,初始地址為 127.0.0.1 6380,2代表兩個(gè)及以上哨兵認(rèn)定為死亡,才認(rèn)為是真的死亡 sentinel monitor mymaster 172.16.90.152 6479 2

啟動(dòng)哨兵集群

./redis-6.0.9/src/redis-sentinel sentinel26380/sentinel.conf ./redis-6.0.9/src/redis-sentinel sentinel26381/sentinel.conf ./redis-6.0.9/src/redis-sentinel sentinel26382/sentinel.conf

查看 sentinel 監(jiān)控的 master-slave 信息:

redis-cli -h 192.168.31.220 -p 26380 sentinel master mymaster SENTINEL replicas mymaster SENTINEL sentinels mymaster

測(cè)試故障自動(dòng)轉(zhuǎn)移

redis-cli -p 6480 DEBUG sleep 30

再次檢查當(dāng)前 master 地址,這次將得到不同的響應(yīng):

SENTINEL get-master-addr-by-name mymaster

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI