Redis3.2.4 Cluster集群搭建
一、redis cluster安裝
1、下載和編譯安裝
cd /home/xm6f/dev wget http://download.redis.io/releases/redis-3.2.4.tar.gz tar -zxvf redis-3.2.4.tar.gz cd redis-3.2.4/ make && make install
2、創建redis節點
選擇2臺服務器,分別為:192.168.1.105,192.168.1.160,每臺服務器有3個節點,組成3個主節點,3個從節點的redis集群。
a、首先在192.168.1.105創建3個節點:
cd /home/xm6f/devmkdir redis_cluster #創建集群目錄 cd redis_cluster/ mkdir 7000 7001 7002 #分別代表三個節點,對應端口分別為7000、7001、7002 #redis.conf拷貝到7000目錄 cp redis-3.2.4/redis.conf redis_cluster/7000/ #redis.conf拷貝到7001目錄 cp redis-3.2.4/redis.conf redis_cluster/7001/ #redis.conf拷貝到7002目錄 cp redis-3.2.4/redis.conf redis_cluster/7002/
b、分別對7000、7001,7002文件夾中的3個redis.conf文件修改對應的配置:
daemonize yes #redis後臺運行 pidfile /var/run/redis_7000.pid #pidfile文件對應7000, 7001, 7002 port 7000 #端口7000, 7001, 7002 cluster-enabled yes #開啟集群 把註釋#去掉 cluster-config-file nodes_7000.conf #集群的配置 配置文件首次啟動自動生成 7000,7001,7002 cluster-node-timeout 5000#請求超時,設置5秒即可 appendonly yes #aof日誌開啟,有需要就開啟,它會每次寫操作都記錄一條日誌 logfile "/home/xm6f/dev/redis_cluster/7000/logs/redis.log" bind 192.168.1.105 #綁定當前服務器的IP,否則的話在集群通信的時候會出現:[ERR] Sorry, can‘t connect to node 192.168.200.140:7001
在192.168.1.160創建3個節點:對應的端口改為7003,7004,7005.配置對應的改一下就可以了。
3、兩臺機器啟動各節點(兩臺服務器方式一樣)
cd /home/xm6f/dev/redis-3.2.4/src ./redis-server ../../redis_cluster/7000/redis.conf & ./redis-server ../../redis_cluster/7001/redis.conf & ./redis-server ../../redis_cluster/7002/redis.conf & ./redis-server ../../redis_cluster/7003/redis.conf & ./redis-server ../../redis_cluster/7004/redis.conf & ./redis-server ../../redis_cluster/7005/redis.conf &
4、查看服務
ps -ef | grep redis #查看是否啟動成功 netstat -tnlp | grep redis #可以看到redis監聽端口
5、殺死所有redis進程
pkill -9 redis
二、創建集群
前面已經準備好了搭建集群的redis節點,接下來我們要把這些節點都串連起來搭建集群。官方提供了一個工具:redis-trib.rb(/home/xm6f/dev/redis-3.2.4/src/redis-trib.rb) 看後綴就知道這東西不能直接執行,它是用ruby寫的一個程序,所以我們還得安裝ruby.
yum -y install ruby ruby-devel rubygems rpm-build
再用 gem 這個命令來安裝 redis 接口,gem是ruby的一個工具包。
gem install redis //等一會兒就好了
當然,方便操作,兩臺Server都要安裝。
註意:在執行gem install redis時,報ERROR:Error installing redis:redis requires Ruby version >= 2.2.2異常。
點擊此處查看解決方案
上面的步驟完事了,接下來運行一下redis-trib.rb
cd /home/xm6f/dev/redis-3.2.4/src ./redis-trib.rb
看到這,應該明白了吧,就是靠上面這些操作完成redis集群搭建。
確認所有的節點都啟動,接下來使用參數 create 創建 (在192.168.1.160中來創建)
./redis-trib.rb create --replicas 1 192.168.1.105:7000 192.168.1.105:7001 192.168.1.105:7002 192.168.1.160:7003 192.168.1.160:7004 192.168.1.160:7005
註意:
a、--replicas 1參數表示為每個主節點創建一個從節點,其他參數是實例的地址集合。
b、防火墻一定要開放監聽的端口,否則會創建失敗。
[[email protected] redis-cluster]#./redis-trib.rb create --replicas 1 192.168.1.105:7000 192.168.1.105:7001 192.168.1.105:7002 192.168.1.160:7003 192.168.1.160:7004 192.168.1.160:7005 >>> Creating cluster >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 Adding replica 127.0.0.1:7004 to 127.0.0.1:7001 Adding replica 127.0.0.1:7005 to 127.0.0.1:7002 Adding replica 127.0.0.1:7006 to 127.0.0.1:7003 M: dfd510594da614469a93a0a70767ec9145aefb1a 127.0.0.1:7001 slots:0-5460 (5461 slots) master M: e02eac35110bbf44c61ff90175e04d55cca097ff 127.0.0.1:7002 slots:5461-10922 (5462 slots) master M: 4385809e6f4952ecb122dbfedbee29109d6bb234 127.0.0.1:7003 slots:10923-16383 (5461 slots) master S: ec02c9ef3acee069e8849f143a492db18d4bb06c 127.0.0.1:7004 replicates dfd510594da614469a93a0a70767ec9145aefb1a S: 83e5a8bb94fb5aaa892cd2f6216604e03e4a6c75 127.0.0.1:7005 replicates e02eac35110bbf44c61ff90175e04d55cca097ff S: 10c097c429ca24f8720986c6b66f0688bfb901ee 127.0.0.1:7006 replicates 4385809e6f4952ecb122dbfedbee29109d6bb234 Can I set the above configuration? (type ‘yes‘ to accept): yes >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join...... >>> Performing Cluster Check (using node 127.0.0.1:7001) M: dfd510594da614469a93a0a70767ec9145aefb1a 127.0.0.1:7001 slots:0-5460 (5461 slots) master M: e02eac35110bbf44c61ff90175e04d55cca097ff 127.0.0.1:7002 slots:5461-10922 (5462 slots) master M: 4385809e6f4952ecb122dbfedbee29109d6bb234 127.0.0.1:7003 slots:10923-16383 (5461 slots) master M: ec02c9ef3acee069e8849f143a492db18d4bb06c 127.0.0.1:7004 slots: (0 slots) master replicates dfd510594da614469a93a0a70767ec9145aefb1a M: 83e5a8bb94fb5aaa892cd2f6216604e03e4a6c75 127.0.0.1:7005 slots: (0 slots) master replicates e02eac35110bbf44c61ff90175e04d55cca097ff M: 10c097c429ca24f8720986c6b66f0688bfb901ee 127.0.0.1:7006 slots: (0 slots) master replicates 4385809e6f4952ecb122dbfedbee29109d6bb234 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
上面顯示創建成功,有3個主節點,3個從節點,每個節點都是成功連接狀態。
以上集群安裝成功了。
Redis3.2.4 Cluster集群搭建