注:
Ø 在配置時,本文檔以【使用者:redis/redis】、【目錄:/redis】為例進行說明
Ø 文檔中執行指令為藍色字型;配置檔案為粉色字型;重點标記為紅色字型
1. 叢集
1.1. 準備
此節需要使用root權限使用者安裝,每台機器隻需要執行一次
1.1.1. 安裝依賴包
如果不想一個個去确認依賴包,可以參考《redis部署(3台叢集)-自動安裝.docx》的【1.2.2.安裝依賴包】章節
1.1.1.1. 安裝ruby
Ø yum安裝方式
yum -y install ruby
yum -y install ruby-devel.x86_64
Ø rpm安裝方式
sudo rpm -ivh --forcecompat-readline5-5.2-17.1.el6.x86_64.rpm
sudo rpm -ivh --force ruby-libs-1.8.7.374-4.el6_6.x86_64.rpm
sudo rpm -ivh --force ruby-1.8.7.374-4.el6_6.x86_64.rpm
sudo rpm -ivh --force ruby-devel-1.8.7.374-4.el6_6.x86_64.rpm
1.1.1.2. 安裝rubygem
Ø yum安裝方式
yum -y install rubygems
Ø rpm安裝方式
sudo rpm -ivh --force ruby-irb-1.8.7.374-4.el6_6.x86_64.rpm
sudo rpm -ivh --force ruby-rdoc-1.8.7.374-4.el6_6.x86_64.rpm
sudo rpm -ivh --force rubygems-1.3.7-5.el6.noarch.rpm
有些系統預設沒有rubygems的包,可能需要手動安裝,先安裝好ruby-irb和ruby-rdoc,然後操作以下步驟
上傳rubygems-2.4.8.zip至/redis目錄
unzip rubygems-2.4.8.zip
cd rubygems-2.4.8
ruby setup.rb
1.1.1.3. 安裝redis.gem
上傳redis.gem至/redis目錄
gem install -l redis-3.2.2.gem
1.2. 安裝redis叢集
從此節開始使用普通使用者redis安裝
1.2.1. redis安裝
上傳redis-3.0.5.tar.gz至/redis目錄
tar -zxvf redis-3.0.5.tar.gz
cd redis-3.0.5
make
make install PREFIX=/redis/redis
1.2.2. 配置步驟
1.2.2.1. 建立節點目錄
mkdir -p /redis/redis/cluster/7381/
mkdir -p /redis/redis/cluster/7382/
mkdir -p /redis/redis/cluster/7383/
mkdir -p /redis/redis/cluster/7384/
mkdir -p /redis/redis/cluster/7385/
mkdir -p /redis/redis/cluster/7386/
1.2.2.2. 複制配置檔案
cp /redis/redis-3.0.5/redis.conf /redis/redis/cluster/
1.2.2.3. 修改配置檔案
vi /redis/redis/cluster/redis.conf
修改
---------------------------------------------------------------------------------------------------------------------------------
port 7381
appendonly yes
#daemonize yes
---------------------------------------------------------------------------------------------------------------------------------
#daemonize yes下方新增
---------------------------------------------------------------------------------------------------------------------------------
cluster-enabled yes
cluster-config-file/redis/redis/cluster/7381/nodes.conf
cluster-node-timeout 5000
---------------------------------------------------------------------------------------------------------------------------------
1.2.2.4. 複制配置檔案至各節點
#修改完redis.conf配置檔案中的這些配置項之後把這個配置檔案分别拷貝到7381/73812/7383/7384/7385/7386目錄下面
cp /redis/redis/cluster/redis.conf/redis/redis/cluster/7381/
cp /redis/redis/cluster/redis.conf/redis/redis/cluster/7382/
cp /redis/redis/cluster/redis.conf /redis/redis/cluster/7383/
cp /redis/redis/cluster/redis.conf/redis/redis/cluster/7384/
cp /redis/redis/cluster/redis.conf/redis/redis/cluster/7385/
cp /redis/redis/cluster/redis.conf/redis/redis/cluster/7386/
1.2.2.5. 修改各節點配置檔案端口
#拷貝完成之後要修改7381/73812/7383/7384/7385/7386目錄下面redis.conf檔案中的port參數和cluster-config-file參數,分别改為對應的檔案夾的名稱
sed -i "s/7381/7381/g"/redis/redis/cluster/7381/redis.conf
sed -i "s/7381/7382/g"/redis/redis/cluster/7382/redis.conf
sed -i "s/7381/7383/g"/redis/redis/cluster/7383/redis.conf
sed -i "s/7381/7384/g"/redis/redis/cluster/7384/redis.conf
sed -i "s/7381/7385/g"/redis/redis/cluster/7385/redis.conf
sed -i "s/7381/7386/g"/redis/redis/cluster/7386/redis.conf
1.2.2.6. 建立持久化目錄
cd /redis/redis/cluster
mkdir data
cd /redis/redis/cluster/data
mkdir 7381 7382 7383 7384 7385 7386
1.2.2.7. 啟動reids
#分别啟動這6個redis執行個體
cd /redis/redis/bin/
nohup ./redis-server /redis/redis/cluster/7381/redis.conf&
nohup ./redis-server /redis/redis/cluster/7382/redis.conf&
nohup ./redis-server /redis/redis/cluster/7383/redis.conf&
nohup ./redis-server /redis/redis/cluster/7384/redis.conf&
nohup ./redis-server /redis/redis/cluster/7385/redis.conf&
nohup ./redis-server /redis/redis/cluster/7386/redis.conf&
1.2.2.8. 确認啟動情況
#啟動之後使用指令檢視redis的啟動情況,每個端口會有一個程序
ps -ef|grep redis
1.2.2.9. 建立叢集
#建立叢集,讓上面的執行個體互相通訊(1表示為每個master配置設定一個salve)
cd /redis/redis-3.0.5/src/
./redis-trib.rb create --replicas 1 \
120.76.21.209:7381 \
120.76.21.209:7382 \
120.76.21.209:7383 \
120.76.21.209:7384 \
120.76.21.209:7385 \
120.76.21.209:7386
1.2.2.10. 确認節點資訊
執行以下指令可以檢視到節點資訊,存在3主3從:
./redis-cli -h 120.76.21.209 -p 7381 cluster nodes
1.2.3. 測試
進入任意一台的/redis/redis/bin
cd /redis/redis/bin
./redis-cli -h 120.76.21.209 -p 7381 -c
---------------------------------------------------------------------------------------------------------------------------------
crm89:/redis/redis/bin $ ./redis-cli -h 120.76.21.209-p 7381 -c
120.76.21.209:7381> set key 1
-> Redirected to slot [12539] located at120.76.21.209:7381
OK
120.76.21.209:7381> get key
"1"
120.76.21.209:7381> exit
---------------------------------------------------------------------------------------------------------------------------------
1.2.4. 啟動
cd /redis/redis/bin/
nohup ./redis-server /redis/redis/cluster/7381/redis.conf&
nohup ./redis-server /redis/redis/cluster/7382/redis.conf&
nohup ./redis-server /redis/redis/cluster/7383/redis.conf&
nohup ./redis-server /redis/redis/cluster/7384/redis.conf&
nohup ./redis-server /redis/redis/cluster/7385/redis.conf&
nohup ./redis-server /redis/redis/cluster/7386/redis.conf&
1.2.5. 停止
ps -ef|grep redis
kill 掉所有程序