在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工具在密碼開啟時的可用性,如需要,可自行驗證。