1. 程式人生 > >在windows上搭建redis叢集(Redis-Sentinel)

在windows上搭建redis叢集(Redis-Sentinel)

Redis叢集策略主要有:

  • 主從複製(Master-Slave)
  • 哨兵模式(Redis-Sentinel)
  • 分片(Redis-Sharding)

本文主要講解如何搭建哨兵模式。

**********************************************************************************************************************************************

採用一主(MASTER)二從(SLAVE)三哨兵(SENTINEL)的架構

**********************************************************************************************************************************************

一、下載安裝Redis

        redis下載地址

     1)下載Redis-x64-3.2.100.zip。

     2)解壓檔案,複製兩份並重命名,形成三個資料夾:master_6379、salve_6380、slave_6381

二、配置檔案

   1)主從配置

         1.1  master_6379資料夾中redis.windows.conf檔案配置 

                 port 6379

         1.2 slave_6380資料夾中redis.windows.conf檔案配置 

                 port 6380                  slaveof 127.0.0.1 6379

          1.3 slave_6381資料夾中redis.windows.conf檔案配置 

                 port 6381                  slaveof 127.0.0.1 6379

     2)哨兵配置

            每一個redis目錄中都建立一個文sentinel.conf檔案

            2.1 master_6379的sentinel.conf檔案配置如下

#當前Sentinel服務執行的埠
port 26379
#master
#Sentinel去監視一個名為mymaster的主redis例項,這個主例項的IP地址為本機地址127.0.0.1,埠號為6379,
#而將這個主例項判斷為失效至少需要2個 Sentinel程序的同意,只要同意Sentinel的數量不達標,自動failover就不會執行
sentinel monitor mymaster 127.0.0.1 6379 1
#指定了Sentinel認為Redis例項已經失效所需的毫秒數。當 例項超過該時間沒有返回PING,或者直接返回錯誤,那麼Sentinel將這個例項標記為主觀下線。
#只有一個 Sentinel程序將例項標記為主觀下線並不一定會引起例項的自動故障遷移:只有在足夠數量的Sentinel都將一個例項標記為主觀下線之後,例項才會被標記為客觀下線,這時自動故障遷移才會執行
sentinel down-after-milliseconds mymaster 5000
#指定了在執行故障轉移時,最多可以有多少個從Redis例項在同步新的主例項,在從Redis例項較多的情況下這個數字越小,同步的時間越長,完成故障轉移所需的時間就越長
sentinel config-epoch mymaster 12
#如果在該時間(ms)內未能完成failover操作,則認為該failover失敗
sentinel leader-epoch mymaster 13

             2.2 slave_6380中的sentinel.conf檔案配置

#當前Sentine2服務執行的埠
port 26479
#slave1
sentinel monitor mymaster 127.0.0.1 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel config-epoch mymaster 12
sentinel leader-epoch mymaster 13

             2.3 slave_6381中的sentinel.conf檔案配置

#當前Sentine3服務執行的埠
port 26579
#slave2
sentinel monitor mymaster 127.0.0.1 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel config-epoch mymaster 12
sentinel leader-epoch mymaster 13

 三、啟動服務

      1)編寫啟動redis指令碼

        編寫一個 bat 來啟動 redis,在每個節點目錄下建立 startup.bat,內容如下:         title master_6379         redis-server.exe redis.windows.conf

        編寫一個 bat 來啟動 sentinel,在每個節點目錄下建立 startup_sentinel.bat,內容如下:

        title master_6379         redis-server.exe sentinel.conf --sentinel

        title命名規則 redis資料夾名, 注意“--sentinel”不是註釋,必須存在。

        另外啟動sentinel還可以使用 redis-sentinel sentinel.conf 命令來啟動

       2)或者直接程式碼啟動redis 

        啟動redis成功:

       

           

        

        啟動sentinel成功

         

         

         

四 測試服務