1. 程式人生 > >在Centos中部署Redis Cluster

在Centos中部署Redis Cluster

一、環境資訊

作業系統:Centos

redis:redis 3.2.11

二、redis安裝

2.1 redis下載

在redis官網下載安裝包,http://download.redis.io/releases/redis-3.2.11.tar.gz

2.2 編譯安裝redis

cp redis-3.2.11.tar.gz /usr/local

cd /usr/local

tar -zxvf redis-3.2.11.tar.gz

cd redis-3.2.11

make && make install

安裝完成後,使用“redis-server --version”檢測安裝是否正常。

2.3 編譯安裝ruby及rubygems

為方便使用redis-trib.rb配置redis叢集,這裡介紹如何編輯安裝ruby和rubygems。

在官網下載ruby安裝包,https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.6.tar.gz

下載rubygems安裝包,https://rubygems.org/rubygems/rubygems-2.6.8.zip

cp ruby-2.2.6.tar.gz /usr/local

cd /usr/local

tar -zxvf ruby-2.2.6.tar.gz

cd ruby-2.2.6

./configure

make && make install

安裝完成後,使用“ruby --version”檢查安裝是否成功。

cp rubygems-2.6.8.tgz /usr/lcoal

cd /usr/local

tar -zxvf rubygems-2.6.8.tgz

cd rubygems-2.6.8

ruby setup.rb

使用gem安裝redis客戶端:

gem install redis

為方便使用,將redis工具複製到

cp /usr/local/redis-3.2.1/src/redis-trib.rb /usr/local/bin/

三、redis叢集配置

3.1 對節點進行配置,並啟動

對每個節點進行配置,主要的配置內容如下:(不同的節點需要更改相應的配置)

port 7000             #埠
bind 192.168.160.8      
pidfile "/var/run/redis_7000.pid"
logfile "/var/log/redis_7000.log"    #日誌路徑
dir "/data/redis/7000"        #資料存放路徑
masterauth "test"           #為了安全,設定了訪問密碼
requirepass "test"

使用命令,啟動所有節點

/usr/bin/redis-server /etc/redis/7000.conf
/usr/bin/redis-server /etc/redis/7001.conf
/usr/bin/redis-server /etc/redis/7002.conf

為了安全,上面的節點中設定了密碼訪問,故在客戶端連線時,需要新增-a引數設定密碼:

redis-cli -c -p 7000 -a test -h 192.168.160.8

客戶端連線7000節點,使用cluster nodes檢視叢集中節點情況:

此時,只有自身節點可見。

3.2 節點握手

客戶端連線7000節點,使用以下命令與其他兩個節點握手:

cluster meet 192.168.160.8 7001
cluster meet 192.168.160.8 7002

之後檢視叢集節點情況:

這時,檢視叢集狀態,發現叢集是不可用的,因為還沒進行slot分配。

3.3 為節點分配slot

使用以下命令為各個節點分配slot,將16383個slot平均地分配給三個節點:

redis-cli -h 192.168.160.8 -a test -p 7000 cluster addslots {0..5461}
redis-cli -h 192.168.160.8 -a test -p 7001 cluster addslots {5462..10922}
redis-cli -h 192.168.160.8 -a test -p 7002 cluster addslots {10923..16383}

此時,檢視叢集狀態,叢集已可用:

叢集狀態OK。可正常使用。

另外,如果上面安裝了redis-trib.rb工具,可以使用以下命令建立叢集,期間會自動進行slot分配,只需確認一下即可。無需再手工分配:

redis-trib.rb create --replicas 0 192.168.160.8:7000 192.168.160.8:7001 192.168.160.8:7002

注:未測試redis-trib.rb工具在密碼開啟時的可用性,如需要,可自行驗證。