redis叢集搭建(同機器、不同機器搭建)
一、同機器下的叢集搭建:
1,建立redis例項統一存放的資料夾——在/usr/local路徑下建立cluster資料夾,命令:mkdir cluster
2,建立每個例項單獨存放的資料夾——在cluster資料夾下建立6個資料夾,分別為7001,7002,7003,7004,7005,7006,
命令:mkdir 7001 7002 7003 7004 7005 7006
3,將下載的redis-3.2.8.tar.gz上傳到虛擬機器的/usr/local/redis(前提先建一個redis)下,並解壓,命令:tar –zxvf redis-3.2.8.tar.gz
4,安裝gcc,執行yum -y install gcc gcc-c++ libstdc++-devel和make CFLAGS="-march=x86-64"兩次輸入y繼續安裝,安裝完成後然後進入redis-3.2.8包,執行make install PREFIX=/usr/local/redis2命令
5,進入cd /usr/local/redis2c,複製bin資料夾到之前建立的6個包下面(/usr/local/cluster/700*),
如:cp -r bin /usr/local/cluster/7001
複製redis-3.2.8下的redis.conf到/usr/local/cluster下面,並進入該目錄
6,修改redis.conf檔案,修改內容如下
1)遮蔽限制本地訪問,在bind 127.0.0.1之前加#(同機器下,可能不需要改,未做測試)
2)protected-mode後的yes改為no
3)daemonize後的no改為yes
4)去掉cluster-enabled yes前面的#(按
5)去掉#方法同4)
6) port後的埠號改6次,每次都改成與之前建立的6個包名一致,如7001,每改一次,將redis.conf檔案,複製到對應的包下,如7001(埠只要不衝突可以隨便改,這裡 為了方便管理改成和包名一致)
7,分別啟動6個redis例項,並檢視
8,進入cd /usr/local/redis/redis-3.2.8/src下,執行./redis-trib.rb create --replicas 1 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 127.0.0.1:7006,報了一個錯,如下
需要安裝:
1)ruby的環境,執行命令:yum install ruby
2)rubygems元件,執行命令:yum install rubygems
3)redis和ruby的介面,執行命令:gem install redis
如果報node 192.168.133.xx:7001 is not empty之類的錯誤說明叢集未正確關閉或是存有日誌檔案則
針對錯誤資訊執行叢集修復命令:./redis-trib.rb
fix 192.168.133.128:7001
9,安裝完成後再次執行,啟動命令,並輸入yes並回車
10,啟動成功
11,做下測試,隨便進入一個redis例項,如進入cd /usr/local/cluster/7001下執行./bin/redis-cli -c -p 7001
二、不同機器下的叢集搭建:
注意: redis的安裝步驟與同機器下一致,這裡只講解個別不同配置的修改
1,首先另外建立三個虛擬機器(這裡為方便演示只建立3個)
2,每臺都設定固定ip (不會設定,可以參考:http://blog.csdn.net/u012042021/article/details/72781888)
node1設為192.168.133.128;
node2設為192.168.133.129;
node3設為192.168.133.130
3,每臺都建立好兩個redis例項(與同機器一樣),分別為:
node1下7001、7002;
node2下7003、7004;
node3下7005、7006
4,分別修改這3臺機器下對應的2個redis例項的redis.conf檔案繫結對應機器的ip,如node1下的兩個redis配置改成 bind 192.168.133.128,儲存退出
注意:改好之後,要關閉每臺虛擬機器的防火牆,執行命令:service iptables stop——立即生效,永久關閉防火牆執行命令:chkconfig iptables off——重啟生效
5,分別啟動這6個例項
node1:
node2:
node3:
6,進入node2 (隨便那臺都行) cd /usr/local/redis/redis-3.2.8/src下(你的解壓目錄),執行
./redis-trib.rb create --replicas 1 192.168.133.128:7001 192.168.133.128:7002 192.168.133.129:7001 192.168.133.129:7002 192.168.133.130:7001 192.168.133.130:7002
7,所有元件都按同機器下安裝一致,仍然報了一個錯
8,解決方法有兩種,官方推薦使用第二種:
1)分別刪除例項包下的三個檔案,再重新啟動
2)針對錯誤資訊執行叢集修復命令:./redis-trib.rb
fix 192.168.133.128:7001
啟動與同機器一致
9,測試,隨便進入一臺機器,如node3,隨便進入一個redis例項,如7002,
進行set、get測試
再進入另一臺機器,如node1,檢查get
10,結束,多謝大家閱讀。