1. 程式人生 > >同機器與不同機器redis集群

同機器與不同機器redis集群

fontsize pty 針對 clust log efi article 方便 屏蔽

此文為另外以為大神原創由於沒有找到分享功能 粘貼復制到此 原地址為https://blog.csdn.net/u012042021/article/details/72818759

一、同機器下的集群搭建:

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,得到redis-3.2.8包

技術分享圖片

技術分享圖片

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前面的#(按Esc鍵退出i編輯模式,輸入/,再輸入cluster-enabled,回車,就可以快速找到)

技術分享圖片

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,結束,多謝大家閱讀。

同機器與不同機器redis集群