標籤:redis叢集配置 部署
Redis叢集部署配置
測試環境:伺服器系統為centos6.5,redis版本為3.2.2,使用一台機器,類比6個redis執行個體來建立redis叢集,其中3主3從
分別建立redis的安裝目錄,並複製redis.conf到安裝目錄下。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/83/CB/wKioL1d8pBOiq69_AAAnOH8gA7s281.png-wh_500x0-wm_3-wmp_4-s_4123021491.png" title="圖片1.png" alt="wKioL1d8pBOiq69_AAAnOH8gA7s281.png-wh_50" />
2.修改每個目錄下的redis.conf設定檔
port 7000 #連接埠
daemonize yes
cluster-enabled yes #開啟叢集模式
cluster-config-file nodes-7000.conf #叢集設定檔
cluster-node-timeout 5000 #逾時時間
appendonly yes
dir /rs-base/servers/redis-2.x/cluster/7000
3.分別啟動執行個體
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/83/CC/wKiom1d8pF-zYIaGAAAXqNXyrFw809.png-wh_500x0-wm_3-wmp_4-s_1900598344.png" style="float:none;" title="圖片2.png" alt="wKiom1d8pF-zYIaGAAAXqNXyrFw809.png-wh_50" />
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/83/CC/wKiom1d8pGLRGf-BAAAbMD7qzY4505.png-wh_500x0-wm_3-wmp_4-s_1399138936.png" style="float:none;" title="圖片3.png" alt="wKiom1d8pGLRGf-BAAAbMD7qzY4505.png-wh_50" />
查看是否都已經啟動成功
4.現在我們已經有了六個正在運行中的 Redis 執行個體, 接下來我們需要使用這些執行個體來建立叢集, 並為每個節點編寫設定檔。
通過使用 Redis 叢集命令列工具redis-trib,編寫節點設定檔的工作可以非常容易地完成redis-trib位於Redis 源碼的src檔案夾中,它是一個 Ruby 程式,這個程式通過向執行個體發送特殊命令來完成建立新叢集,檢查叢集,或者對叢集進行重新分區(reshared)等工作。
執行以下命令來建立叢集:
/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
(注意:這個命令在redis減壓後的src目錄下 --replicas的參數是每個master節點分配的slave個數)
執行後提示: /usr/bin/env: ruby: No such file or directory
系統中沒有安裝ruby,所以報上面的錯誤。
先安裝ruby:
[[email protected] yum.repos.d]# yum install ruby
[[email protected] yum.repos.d]# yum install rubygems
[[email protected] yum.repos.d]# gem install redis
再次建立叢集:
[[email protected] src]# ./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
Redis自動選擇主從
5.測試叢集
在其中任意一個節點 使用redis-cli -c -p 7000, set aaa bbb
再到其他節點使用get aaa 是否可以獲得value,
類比其中一個主節點故障,殺死一個redis進程,再到其他節點使用get和set沒有異常,並且它的從節點會變成主節點,
6.檢查叢集:通過check cluster的一個節點,就知道整個叢集的狀況,可以看出來誰是主,誰是從。
./redis-trib.rb check 127.0.0.1:7000
增加節點:redis-trib.rb add-node 想要的增加的ip:port 叢集中已經存在的IP:port
./redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000
如果報這個錯
需要刪除你redis.conf裡面cluster-config-file 所在的檔案
如果打算讓新節點成為 127.0.0.1:7005 的從節點, 只要用用戶端串連上新節點, 然後執行以下命令:
redis 127.0.0.1:7006> cluster replicate 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e
(id為7005的id)
用以下命令查看是否已經別成7005的從節點 (id為主節點的id)
redis-cli -p 7000 cluster nodes | grep slave | grep 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e
本文出自 “技術改變世界” 部落格,轉載請與作者聯絡!
redis叢集部署配置