centos7/rhel7下安裝redis4.0集群


相關介紹

Redis從3.0版本開始支持集群!    

集群一般由多個節點組成,節點數量至少6個才能保證組成完整高可用的集群。

每個節點需要開啟配置文件中的cluster-enabled yes,讓Redis運行在集群模式下。

     

測試環境

資源有限,這里使用3台虛擬機模擬6個節點(用端口區分),每台虛機2個節點,如下圖:

 

:Redis默認端口:6379,這里方便起見,設定從7001~7006來區分6個節點。

 

操作步驟

Redis下載官網:https://redis.io/

1. 節點准備

每台機器都先編譯安裝Redis 經測試,redis-3.2.9 集群搭建方法一樣

[root@server-1 ~]# tar  zxvf  redis-4.0.1.tar.gz

[root@server-1 ~]# cd redis-4.0.1

[root@server-1 redis-4.0.1]# make && make install    //不需要configure,直接make,別忘了系統先裝好gcczlib-devel

[root@server-1 redis-4.0.1]# redis-server  -v    //檢查一下版本

server-2和server-3操作同上;

 

2. 配置每個節點

server-1

[root@server-1 redis-4.0.1]# mkdir -p /opt/redis-cluster/{7001,7004}  //在/opt目錄下新建一個redis-cluster文件夾,並在里面新建2個文件夾,用來區分節點

[root@server-1 redis-4.0.1]# cp redis.conf /opt/redis-cluster/7001/redis-7001.conf

[root@server-1 redis-4.0.1]# vim /opt/redis-cluster/7001/redis-7001.conf    //必要需要修改如下,其他細化優化的配置項可暫時保持默認

      bind 192.168.1.21             #本機IP

      port 7001                   #改為設定的端口

      daemonize yes                    #后台啟動

      cluster-enabled yes          #啟動集群模式

      cluster-config-file nodes-7001.conf  #集群內部配置文件,改掉端口號 

      cluster-node-timeout 15000     #節點超時時間,單位:毫秒   

[root@server-1 redis-4.0.1]# cp redis.conf /opt/redis-cluster/7004/redis-7004.conf

[root@server-1 redis-4.0.1]# vim /opt/redis-cluster/7004/redis-7004.conf

      bind 192.168.1.21             #本機IP

      port 7004                   #改為設定的端口

      daemonize yes                    #后台啟動

      cluster-enabled yes          #啟動集群模式

      cluster-config-file nodes-7004.conf  #集群內部配置文件,改掉端口號 

      cluster-node-timeout 15000     #節點超時時間,單位:毫秒

 

server-2

[root@server-2 redis-4.0.1]# mkdir -p /opt/redis-cluster/{7002,7005}

    ......參考server-1......    

server-3

[root@server-3 redis-4.0.1]# mkdir -p /opt/redis-cluster/{7003,7006}

    ......參考server-1......

  

3. 啟動每個節點

server-1

[root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7001/redis-7001.conf

[root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7004/redis-7004.conf

server-2

[root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7002/redis-7002.conf

[root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7005/redis-7005.conf

server-3

[root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7003/redis-7003.conf

[root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7006/redis-7006.conf

    

4. redis-trib.rb環境准備該文件存在於redis-4.0.1/src/目錄中    //只需要在其中一台上執行此步驟!!

redis-trib.rb是采用Ruby實現的Redis集群管理工具。內部通過Cluster相關命令幫助

我們簡化集群創建、檢查、槽遷移和均衡等常見操作,使用之前需要安裝Ruby依賴環境。

以下安裝Ruby的方法如果覺得麻煩,可以參考另一篇文章centos7/rhel7安裝較高版本ruby2.2/2.3/2.4+

①安裝Ruby

~]# wget http://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.5.tar.gz

~]# tar zxvf  ruby-2.3.5.tar.gz

~]# cd ruby-2.3.5

ruby-2.3.5]# ./configure  --prefix=/opt/ruby

ruby-2.3.5]# make && make install

ruby-2.3.5]# ln -s /opt/ruby/bin/ruby /usr/bin/ruby

ruby-2.3.5]# ln -s /opt/ruby/bin/gem /usr/bin/gem

~]#ruby -v    //查看一下

②安裝rubygem redis依賴

~]# wget http://rubygems.org/downloads/redis-3.3.0.gem

~]# gem install -l redis-3.3.0.gem

如果這步報錯,如下:

~]# gem install -l redis-3.3.0.gem
ERROR: Loading command: install (LoadError)
 cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

解決辦法如下:

yum -y install zlib-devel
進入ruby源碼文件夾,安裝ruby自身提供的zlib包
cd ruby-2.3.5/ext/zlib
ruby ./extconf.rb
make
make install

然后再次執行gem install -l redis-4.0.1.gem,正常通過顯示Successfully... 。

③檢查redis-trib.rb的可用性

~]# ./redis-4.0.1/src/redis-trib.rb    //如下圖所示代表可用了

 

5. 創建集群

只需要執行一條長命令,如下:

~]#./redis-4.0.1/src/redis-trib.rb create  --replicas 1 192.168.1.21:7001 192.168.1.22:7002 192.168.1.23:7003 192.168.1.21:7004 192.168.1.22:7005 192.168.1.23:7006

說明:--replicas參數指定集群中每個主節點配備幾個從節點,這里設置為1。

   這里因為測試,只用了3台機器,如果部署節點使用不同的IP地址,redis-trib-rb會盡可能保證主從節點不分配在同一台機器下,

   因此會重新排序節點表順序。節點列表順序用於確定主從角色,先主節點之后是從節點。

   創建過程中首先會給出主從節點角色分配的計划,如下圖:

最后的輸出報告說明:16384個槽全部被分配完,集群創建成功。

這里需要注意給redis-trib.rb的節點地址必須是不包含任何槽/數據的節點,否則會拒絕創建集群。

  

6. 集群完整性檢查

集群完整性指所有的槽都分配到存活的主節點上,只要16384個槽中有一個沒有分配給節點則表示集群不完整。

可以用redis-trib.rb check命令檢測之前創建的集群是否成功,check命令只需要給出集群中任意一個節點地址就可以

完成整個集群的檢查工作,命令使用如下所示:

[root@server-1 ~]# ./redis-4.0.1/src/redis-trib.rb check 192.168.1.22:7002

 

結束.

 

 

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM