1. 程式人生 > >centos7.2下使用 redis 5.0搭建叢集 redis-cluster

centos7.2下使用 redis 5.0搭建叢集 redis-cluster

1.redis安裝與編譯

# 下載,解壓,編譯redis
$ wget http://download.redis.io/releases/redis-5.0.0.tar.gz
$ tar xzf redis-5.0.0.tar.gz
# 進入到解壓目錄 
$ cd redis-5.0.0
$ make
# 進入到redis-5.0.0/src 目錄下執行  
$ make install  

編譯後結果如下:

#在redis資料夾下新建etc和bin目錄,將redis.conf拷貝到 etc下,常用的5個命令移動到bin目錄下

#啟動redis ,啟動之前編輯redis.conf 檔案將 daemonize選項 改為yes (後臺啟動)

$ bin/redis-server  etc/redis.conf

#驗證啟動是否成功

$ ps-ef |grep redis

#退出redis服務 
$ Kill 程序號 或   pkill redis-server 

2.叢集搭建

redis叢集至少需要2N+1個master節點(3個),在這裡我們搭建三個master節點,並且為每一個master再掛一個slave節點,總共6個節點.我們在這裡採用一臺機器上建立6個redis例項,並將它們配置成叢集模式,搭建一個偽叢集,與真正的分散式配置方法幾乎一樣,搭建步驟如下:

2.1  在usr/local/下 建立資料夾 redis-cluster  ,在redis-cluster下建立 8001,8002,8003,8004,8005,8006資料夾

  2.2 將redis.conf拷貝至redis-cluster下的8001資料夾下,修改配置檔案

  1. Daemonize  yes
  2. Port 8001 (分別對每個機器的埠還進行設定)
  3. Bind 192.168.1.102 (必須綁定當前機器的ip,方便叢集定位機器,不繫結可能會出現迴圈查詢節點及其的情況)
  4. Dir  /usr/local/redis-cluster/8001/ (指定資料檔案存放位置,必須指定不同的目錄位置,否則可能丟失資料)
  5. Cluster-enable yes(啟動叢集模式)
  6. Cluster-config-file  nodes-8001.conf  (800x與前面的埠號對應上)
  7. Cluster-node-timeout 5000
  8. Appendonly  yes (開啟aof模式)

 

2.3 將8001下的redis.conf配置檔案分別拷貝到剩餘的5個檔案下

2.4 將8002 8003 8004 8005 8006 下的配置檔案的 b,d,f 項進行相應修改,可在vim使用批量替換命令

:%s/源字串/目的字串/g

2.5 分別啟動6個例項

使用 ps -ef |grep redis檢視狀態

2.6 建立redis叢集(redis5.0使用redis-cli),5.0以下版本見下文

./redis-cli --cluster create 192.168.1.102:8001 192.168.1.102:8002 192.168.1.102:8003 
192.168.1.102:8004 192.168.1.102:8005 192.168.1.102:8006 --cluster -replicas 1

在最後的replicas 1 指的是 主節點與從節點數的比例值.表示 master/slave=1

輸入yes之後可以看到 :

2.7 搭建完畢,開始驗證

  1. 連線任意一個客戶端 : ./redis-cli -c -h -p (-c表示叢集模式)

如: /usr/local/redis/bin/redis-cli -c -h 192.168.1.102 -p 8001

    2.進行驗證: cluster info(檢視叢集資訊),cluster nodes(檢視節點列表)

3.

  1. 資料操作驗證,可以看到叢集是輪流向叢集中存入資料,取出資料時會自動重定向   
  2. 關閉叢集需要逐個關閉:    /usr/local/redis/bin/redis-cli -c -h 192.168.1.102 -p 8001 shutdown

分散式redis叢集

2.7 redis5.0以下的版本 搭建方法

  • 由於redis叢集需要使用ruby命令,所以需要安裝ruby( redis5.0使用redis-cli建立叢集,所以不需此步驟
$ yum install ruby
$ yum install rubygems
$ gem install redis –version X.X.X(安裝redis和ruby的介面)

在redis/src下 使用redis-trib.rb命令建立叢集

建立完成,分別啟動6個例項,步驟同上.