1. 程式人生 > >redis2.X手動主從、哨兵模式搭建redis3.X rediscluster搭建

redis2.X手動主從、哨兵模式搭建redis3.X rediscluster搭建

一、redis 手動切換主從(瞭解即可)

搭建三個redis,主節點開服務edis-server --port xxxx,從節點開啟服務redis-server --port xxxx slave of [主節點ip] [主節點埠]

此時已開啟主從,從節點只讀,主節點可用以增刪改。

主節點掛掉手動在其中一個執行slaveof no one 為主節點。 其餘slaveof [新主節點ip] [埠]

二,redis2.X哨兵模式搭建

當主服務掛掉,哨兵叢集會進行投票,選出新的主節點。在redis3.0之前sentinel是單獨的程序。與redis是分開的。目錄在redis/src/redis-sentinel

首先cp redis/src/redis-sentinel /opt/soft/redis/bin/ 將執行檔案放入可直接執行目錄,其次建立哨兵配置檔案內容為

kanq代表監控的叢集名稱 不可重複。127.0.0.1代表所監控的主節點ip

+埠   2代表票數。當前我的哨兵為3個所以配置的2!!!

開啟主從節點服務:主節點開服務edis-server --port xxxx,從節點開啟服務redis-server --port xxxx slave of [主節點ip] [主節點埠]。

開啟哨兵程序:redis-sentinel s1.conf (設定的每個哨兵都開啟)

達到效果,主節點掛掉從節點中選取一個成為主節點。解決單點故障。但是依舊存在單點瓶頸。

三、redis3.x rediscluster叢集。

在redis3.0後 redis-server自帶哨兵。cluster叢集將資料庫分為16384個槽位slot。所有的key先進行計算slot_number=crc16(key)%16384,

然後根據結果分配到不同的槽。這也就意味著:1,叢集會進行初始化生成槽。2,每個主節點會被分配到一定的槽。從而解決單點瓶頸。3,每個主節點會有自己的從節點,從而解決單點故障。4,每個主節點會內建類似sentinel的功能,進行自動故障轉移。5,叢集無中心節點,請求會發給任意節點。主節點只執行和自己的槽有關的命令,對於其他草的命令轉向到對應的節點執行。

開始搭建:

1、上傳3.x包,解壓。安裝 make && make PREFIX=/xx/xx/xx install 

2,yum install 一些元件 如 gcc tcl ruby rubygems等

3,在cluster下執行gem install --local redis-3.3.0.gem 安裝gem支援redis3.0分配槽位。

4,配置啟動時載入的檔案redis.conf:

5,開啟服務(以6臺為例),redis-server redis.conf

6,在redis/src目錄下執行指令碼。./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001  127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

此命令完成主從節點定義 及槽位分配。可見:

完成搭建。

ps:做一隻快樂的胖子,要是再找到個小姐姐就更棒了!哈哈