1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Redis 6.X Sentinel 哨兵集群搭建

        共 3089字,需瀏覽 7分鐘

         ·

        2021-03-31 15:00

        碼哥帶大家完成在 CentOS 7 中安裝 Redis 6.x 教程。在學(xué)習(xí) Redis 之前,我們需要先搭建一套哨兵環(huán)境。機(jī)器有限,實(shí)現(xiàn)目標(biāo)是一臺機(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分別對應(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,所以需要升級gcc版本。

        否則在編譯過程中會報(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

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

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

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

        編譯完成使用 make install 對 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
        # 后臺執(zhí)行
        daemonize yes
        pidfile /var/run/redis_6479.pid

        slave

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

        # master 端口
        port 6480
        # 讓 Redis 可以跨網(wǎng)訪問
        bind 172.16.90.152
        # 后臺執(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
        # 后臺運(yùn)行
        daemonize yes
        # 默認(rèn)yes,沒指定密碼或者指定IP的情況下,外網(wǎng)無法訪問
        protected-mode no
        # 哨兵的端口,客戶端通過這個(gè)端口來發(fā)現(xiàn)redis
        port 26380
        # 這個(gè)文件會自動(dòng)生成(如果同一臺服務(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

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

        redis-cli -p 6480 DEBUG sleep 30

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

        SENTINEL get-master-addr-by-name mymaster


        瀏覽 137
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            被cao哭高h野外np调教视频 | 特一级黄色视频 | 伊人日日| 国产精品久免费的黄网站 | 男女网站免费观看 | 欧美极品少妇XXXXⅩ喷水 | 日韩欧美老女人 | 国产乱婬AV片免费观看 | 91亚州 | 男女在线观看免费视频 |