redis集群搭建

1.进入自己单机版redis的目录的bin下
[root@localhost sysconfig]# cd /usr/local/
[root@localhost local]# mkdir cluster-redis
[root@localhost local] cp -r ./redis/bin ./cluster-redis/redis01
2.修改redis01的配置,修改好同样的复制六份
[root@localhost local] cd /usr/local/cluster-redis/redis01/
[root@localhost redis01]# rm dump.rdb 不需要任何数据在集群中,故删除
vim redis.conf
修改如下:
port 改为 7001

cluster-enabled yes 注释去掉

cluster-enabled yes
表示开启集群的模式
只需要做这两个操作保存即可,然后复制5份
[root@localhost redis01]# cp -r /usr/local/cluster-redis/redis01/ /usr/local/cluster-redis/redis02
[root@localhost redis01]# cp -r /usr/local/cluster-redis/redis01/ /usr/local/cluster-redis/redis03
[root@localhost redis01]# cp -r /usr/local/cluster-redis/redis01/ /usr/local/cluster-redis/redis04
[root@localhost redis01]# cp -r /usr/local/cluster-redis/redis01/ /usr/local/cluster-redis/redis05
[root@localhost redis01]# cp -r /usr/local/cluster-redis/redis01/ /usr/local/cluster-redis/redis06
3.redis集群官方要求ruby环境执行,操作如下
(1)yum install ruby //安装ruby
(2)yum install rubygems //安装rubygems,最新版本会自动安装
(3)gem install redis
在这里插入图片描述
执行完成之后会发现报错了 ,redis需要的Ruby版本最低是2.2.2,但是CentOS7 yum库中ruby的版本支持到 2.0.0,可gem 安装redis需要最低是2.2.2,采用rvm来更新ruby
如果没有出现上面的信息,可参考:https://blog.csdn.net/lixwjava/article/details/50408070,需要执行的命令如下:
(4)安装RVM
ruby环境 参考此篇文章https://www.cnblogs.com/blueskyli/p/9084548.html
curl -L get.rvm.io | bash -s stable
find / -name rvm -print(此时可能出现问题如下)
在这里插入图片描述
如果没有出现上面的信息,可参考:https://blog.csdn.net/lixwjava/article/details/50408070,需要执行的命令如下:
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
curl -L get.rvm.io | bash -s stable
find / -name rvm.sh
source /etc/profile.d/rvm.sh
rvm requirements
上面命令执行完毕后,继续执行 find / -name rvm -print,就可以看到上面的正确的截图了
使刚安装的rvm立即生效
source /usr/local/rvm/scripts/rvm
查看rvm库中ruby版本
rvm list known
安装一个ruby版本
rvm install 2.4.1
使用一个ruby版本
rvm use 2.4.1
设置默认版本
rvm use 2.4.1 --default
[卸载一个已知版本]
root@localhost redis01]# rvm remove 2.2.0
ruby-2.2.0 - #already gone
Using /usr/local/rvm/gems/ruby-2.4.1
查看ruby版本
ruby --version
到此为止ruby的新版本就安装完毕了,下面让我继续执行安装redis 执行命令
gem install redis

然后写一个脚本启动和停止脚本6个redis集群
​创建关闭集群的脚本:
[root@localhost redis-cluster]# vim shutdow-all.sh
redis01/redis-cli -p 7001 shutdown
redis02/redis-cli -p 7002 shutdown
redis03/redis-cli -p 7003 shutdown
redis04/redis-cli -p 7004 shutdown
redis05/redis-cli -p 7005 shutdown
redis06/redis-cli -p 7006 shutdown
[root@localhost redis-cluster]# chmod u+x shutdown-all.sh
创建启动脚本然后启动:
cd /usr/local/cluster-redis
vim start-all.sh
cd redis01
./redis-server redis.conf
cd …
cd redis02
./redis-server redis.conf
cd …
cd redis03
./redis-server redis.conf
cd …
cd redis04
./redis-server redis.conf
cd …
cd redis05
./redis-server redis.conf
cd …
cd redis06
./redis-server redis.conf
cd …

chmod 777 ./start-all.sh
./start-all.sh
ps -ef |grep redis

启动后把redis源码目录下的src下的
cd /root/redis-4.0.1/src
cp -r ./redis-trib.rb /usr/local/cluster-redis/
执行密令启动集群:
./redis-trib.rb create --replicas 1 192.168.19.134:7001 192.168.19.134:7002 192.168.19.134:7003 192.168.19.134:7004 192.168.19.134:7005 192.168.19.134:7006

[root@localhost cluster-redis]# ./redis-trib.rb create --replicas 1 192.168.19.134:7001 192.168.19.134:7002 192.168.19.134:7003 192.168.19.134:7004 192.168.19.134:7005 192.168.19.134:7006>>> Creating cluster

Performing hash slots allocation on 6 nodes…
Using 3 masters:
192.168.19.134:7001
192.168.19.134:7002
192.168.19.134:7003
Adding replica 192.168.19.134:7004 to 192.168.19.134:7001
Adding replica 192.168.19.134:7005 to 192.168.19.134:7002
Adding replica 192.168.19.134:7006 to 192.168.19.134:7003
M: c855749f4a5ed5f3ceaaf782d5659c2a4684d76f 192.168.19.134:7001
slots:0-5460 (5461 slots) master
M: 38684ed67c90fc86093174c132bf68d1ce24e16e 192.168.19.134:7002
slots:5461-10922 (5462 slots) master
M: dd8c8d74f0274fe5829ee93c1d4ab57cd9fa1307 192.168.19.134:7003
slots:10923-16383 (5461 slots) master
S: 024eb921c7f8075f23918cd7369500c5828c5407 192.168.19.134:7004
replicates c855749f4a5ed5f3ceaaf782d5659c2a4684d76f
S: 0be77206ea579dc9e0ba5354c1227722c9b8e496 192.168.19.134:7005
replicates 38684ed67c90fc86093174c132bf68d1ce24e16e
S: 57d190a03546f9ff7eb3b02ae40ad6aaa886c1cc 192.168.19.134:7006
replicates dd8c8d74f0274fe5829ee93c1d4ab57cd9fa1307
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.19.134:7001)
M: c855749f4a5ed5f3ceaaf782d5659c2a4684d76f 192.168.19.134:7001
slots:0-5460 (5461 slots) master
1 additional replica(s)
M: dd8c8d74f0274fe5829ee93c1d4ab57cd9fa1307 192.168.19.134:7003
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: 024eb921c7f8075f23918cd7369500c5828c5407 192.168.19.134:7004
slots: (0 slots) slave
replicates c855749f4a5ed5f3ceaaf782d5659c2a4684d76f
M: 38684ed67c90fc86093174c132bf68d1ce24e16e 192.168.19.134:7002
slots:5461-10922 (5462 slots) master
1 additional replica(s)
S: 0be77206ea579dc9e0ba5354c1227722c9b8e496 192.168.19.134:7005
slots: (0 slots) slave
replicates 38684ed67c90fc86093174c132bf68d1ce24e16e
S: 57d190a03546f9ff7eb3b02ae40ad6aaa886c1cc 192.168.19.134:7006
slots: (0 slots) slave
replicates dd8c8d74f0274fe5829ee93c1d4ab57cd9fa1307
[OK] All nodes agree about slots configuration.

Check for open slots…
Check slots coverage…
[OK] All 16384 slots covered.

注意:ip改成你们自己的,防火墙看关了没,如果是udp开放端口的话,集群有个总集线端口也要开放,6个的集群端口号每个加10000开放,祝你们成功!

若启动集群报错如下
[ERR] Node 192.168.19.134:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

则写个脚本删除6个文件中的nodes.conf和dump.rdb文件,如下:
rm -rf ./redis01/nodes.conf
rm -rf ./redis02/nodes.conf
rm -rf ./redis03/nodes.conf
rm -rf ./redis04/nodes.conf
rm -rf ./redis05/nodes.conf
rm -rf ./redis06/nodes.conf
rm -rf ./redis01/dump.rdb
rm -rf ./redis02/dump.rdb
rm -rf ./redis03/dump.rdb
rm -rf ./redis04/dump.rdb
rm -rf ./redis05/dump.rdb
rm -rf ./redis06/dump.rdb

执行脚本,然后重启6个文件的redis,在执行启动集群的命令即可。

测试集群成功没:-c必须要,表示集群模式连接7001.
[root@localhost cluster-redis]# redis01/redis-cli -p 7001 -c
127.0.0.1:7001> set key1 value1
-> Redirected to slot [9189] located at 192.168.19.134:7002
OK
192.168.19.134:7002> cluster info //查看当前集群的信息
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:2
cluster_stats_messages_ping_sent:526
cluster_stats_messages_pong_sent:537
cluster_stats_messages_meet_sent:5
cluster_stats_messages_sent:1068
cluster_stats_messages_ping_received:535
cluster_stats_messages_pong_received:531
cluster_stats_messages_meet_received:2
cluster_stats_messages_received:1068

192.168.19.134:7002> cluster nodes //查看集群节点信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值