搭建集群需要使用到官方提供的ruby脚本。
需要安装ruby的环境。
安装ruby
yum -y install ruby
yum -y install rubygems
redis集群管理工具redis-trib.rb,此文件在redis源码的src目录中
脚本需要的ruby包:
下载地址:
https://rubygems.org/gems/redis/versions/3.0.0
需要上传到linux服务。
安装ruby的包:
gem install redis-3.0.0.gem
[root@bogon ~]# gem install redis-3.0.0.gem
Successfully installed redis-3.0.0
1 gem installed
Installing ri documentation for redis-3.0.0...
Installing RDoc documentation for redis-3.0.0...
集群的搭建
第一步:创建6个redis实例,端口号从7001~7006,实际上就是复制单机版六份到/usr/local/redis/redisCluster目录中。
第二步:修改redis的配置文件
1、修改端口号
2、打开cluster-enable前面的注释。
3、设置redis绑定的IP地址:
bind 192.168.10.101
第三步:把创建集群的ruby脚本redis-trib.rb复制到/usr/local/redis/rediscluster目录下。
第四步:启动6个redis实例
使用脚本启动:
touch start-cluster.sh
chmod +x start-cluster.sh
touch stop-cluster.sh
chmod +x stop-cluster.sh
start-cluster.sh
#!/bin/bash cd /usr/local/redis/redisCluster/redis1/ ./redis-server redis.conf cd /usr/local/redis/redisCluster/redis2/ ./redis-server redis.conf cd /usr/local/redis/redisCluster/redis3/ ./redis-server redis.conf cd /usr/local/redis/redisCluster/redis4/ ./redis-server redis.conf cd /usr/local/redis/redisCluster/redis5/ ./redis-server redis.conf cd /usr/local/redis/redisCluster/redis6/ ./redis-server redis.conf |
stop-cluster.sh
#!/bin/bash cd /usr/local/redis/redisCluster/redis1 ./redis-cli -h 192.168.10.11 -p 7001 shutdown cd /usr/local/redis/redisCluster/redis2 ./redis-cli -h 192.168.10.11 -p 7002 shutdown cd /usr/local/redis/redisCluster/redis3 ./redis-cli -h 192.168.10.11 -p 7003 shutdown cd /usr/local/redis/redisCluster/redis4 ./redis-cli -h 192.168.10.11 -p 7004 shutdown cd /usr/local/redis/redisCluster/redis5 ./redis-cli -h 192.168.10.11 -p 7005 shutdown cd /usr/local/redis/redisCluster/redis6 ./redis-cli -h 192.168.10.11 -p 7006 shutdown |
在防火墙中放开这六个端口
重启防火墙:service iptables restart
第五步:创建集群。
./redis-trib.rb create --replicas 1 192.168.10.11:7001 192.168.10.11:7002 192.168.10.11:7003 192.168.10.11:7004 192.168.10.11:7005 192.168.10.11:7006 |
[root@bogon redis-cluster]# ./redis-trib.rb create --replicas 1 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005 192.168.25.153:7006
>>> Creating cluster
Connecting to node 192.168.25.153:7001: OK
Connecting to node 192.168.25.153:7002: OK
Connecting to node 192.168.25.153:7003: OK
Connecting to node 192.168.25.153:7004: OK
Connecting to node 192.168.25.153:7005: OK
Connecting to node 192.168.25.153:7006: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.25.153:7001
192.168.25.153:7002
192.168.25.153:7003
Adding replica 192.168.25.153:7004 to 192.168.25.153:7001
Adding replica 192.168.25.153:7005 to 192.168.25.153:7002
Adding replica 192.168.25.153:7006 to 192.168.25.153:7003
M: 5a8523db7e12ca600dc82901ced06741b3010076 192.168.25.153:7001
slots:0-5460 (5461 slots) master
M: bf6f0929044db485dea9b565bb51e0c917d20a53 192.168.25.153:7002
slots:5461-10922 (5462 slots) master
M: c5e334dc4a53f655cb98fa3c3bdef8a808a693ca 192.168.25.153:7003
slots:10923-16383 (5461 slots) master
S: 2a61b87b49e5b1c84092918fa2467dd70fec115f 192.168.25.153:7004
replicates 5a8523db7e12ca600dc82901ced06741b3010076
S: 14848b8c813766387cfd77229bd2d1ffd6ac8d65 192.168.25.153:7005
replicates bf6f0929044db485dea9b565bb51e0c917d20a53
S: 3192cbe437fe67bbde9062f59d5a77dabcd0d632 192.168.25.153:7006
replicates c5e334dc4a53f655cb98fa3c3bdef8a808a693ca
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 192.168.25.153:7001)
M: 5a8523db7e12ca600dc82901ced06741b3010076 192.168.25.153:7001
slots:0-5460 (5461 slots) master
M: bf6f0929044db485dea9b565bb51e0c917d20a53 192.168.25.153:7002
slots:5461-10922 (5462 slots) master
M: c5e334dc4a53f655cb98fa3c3bdef8a808a693ca 192.168.25.153:7003
slots:10923-16383 (5461 slots) master
M: 2a61b87b49e5b1c84092918fa2467dd70fec115f 192.168.25.153:7004
slots: (0 slots) master
replicates 5a8523db7e12ca600dc82901ced06741b3010076
M: 14848b8c813766387cfd77229bd2d1ffd6ac8d65 192.168.25.153:7005
slots: (0 slots) master
replicates bf6f0929044db485dea9b565bb51e0c917d20a53
M: 3192cbe437fe67bbde9062f59d5a77dabcd0d632 192.168.25.153:7006
slots: (0 slots) master
replicates c5e334dc4a53f655cb98fa3c3bdef8a808a693ca
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@bogon redis-cluster]#