centos7 搭建三主三从 redis5.0集群

最近在开始准备做毕设。楼主实习的公司为传统行业,技术太老了。。只能自己慢慢找资料摸索新东西,打算用spring boot+spring cloud+redis+es+mysql+docker做个web游戏后端服务。。打算使用docker来部署环境部署完es和mysql准备部署redis。。研究了一下docker的安装部署redis集群。。查了些资料不靠谱,退而求其次还是用普通安装包的方式来部署,而网上的redis集群部署版本老旧 而且很麻烦坑也很多,研究了一天,部署成功了。。将该方法记录下来给大家分享。

我的项目由于自己比较穷只有一台笔记本,还好配置还行。。自己装了个VM ware workstation 然后装了三个centos7 ,每个分配4G内存,关闭了防火墙和selinux 而且配置的网络环境为nat转发,并且改了静态ip三台的ip分别为:192.168.153.128,192.168.153.129,192.168.153.130保证三台机子可以互相ping通,并且跟宿主机可以ping通,同一网段不用再废话了。。

下面正文开始:

首先,我的构思是三台虚拟机,三主三从,每个机子部署一个主master还有一个备的slaver,然后把三个机子整合为一个cluster。

架构:

 centos7 搭建三主三从 redis5.0集群_第1张图片

一.安装redis

1.下载redis

    打开redis官网 https://redis.io/  下载最新版

     1.cd /usr/local/src

     2. wget http://download.redis.io/releases/redis-5.0.2.tar.gz

 2.编译安装redis

    需要先安装gcc编译器

      yum -y install gcc

    解压redis包  然后编译安装

     tar -zxvf  redis-5.0.2.tar.gz

      cd redis-5.0.2

      make && make install 

 同样的操作去给另外两条机器安装redis

二. 创建节点

1. 我选择在/usr/local下创建了一个redis-cluster文件夹用于存放redis节点的配置文件(redis.conf)

mkdir /usr/local/redis-cluster

cd /usr/local/redis-cluster

mkdir 9000 9001

cp /usr/local/redis-5.0.2/redis.conf /usr/local/redis-cluster/9000

cp /usr/local/redis-5.0.2/redis.conf /usr/local/redis-cluster/9001

2.修改配置文件(9000和9001文件夹下各一个配置文件 都需要修改,9001参照9000的配置只需要把端口改了)

daemonize    yes                     //守护线程 ,后台运行redis
pidfile  /var/run/redis_9000.pid      
port  9000                             //每个节点的端口号
cluster-enabled  yes                   //开启集群模式
cluster-config-file  nodes_9000.conf   //集群节点的配置
cluster-node-timeout  5000         //节点请求超时时间
appendonly  yes                  //aof日志每一个操作都记录模式

bind 0.0.0.0                //开启网络,保证其他网络可以访问该机子

 

三. 分发该配置到另外两台机器 

我选择了使用scp命令进行文件的分发。。真的很好用。

scp -r /usr/local/redis-cluster 192.168.153.129:/usr/local

然后输入root密码。

scp -r /usr/local/redis-cluster 192.168.153.130:/usr/local

然后输入root密码。

四. 启动每台机器上的两个节点

 cd /usr/loacl/src/

redis-server /usr/local/redis-cluster/9000/redis.conf

redis-server /usr/local/redis-cluster/9001/redis.conf

 

 同样的操作去另外两条机器启动剩下的四个节点。

五. 创建集群

redis5.0真心舒服 集群创建方式改为了C编写的redis-cli创建,不用再安装麻烦的ruby(需要安装一些库,而且cenos7 yum -y install ruby 默认安装的ruby版本是2.0 而gem install redis 需要的ruby最低2.2上网看了些资料 真的懒得折腾了  5.0 !!!舒服!!!)了。

cd /usr/local/src/redis-5.0.2

redis-cli --cluster create 192.168.153.128:9000  192.168.153.129:9000 192.168.153.130:9000 192.168.153.128:9001  192.168.153.129:9001 192.168.153.130:9001 --cluster-replicas 1           //创建集群,--cluster-replicas 1 指定从库数量1

//创建顺序三个主,三个从,前面三个是主后面三个是从

启动后,可看到成功信息,如下:

[root@hadoop01 local]# redis-cli --cluster create 192.168.153.128:9000 192.168.153.129:9000 192.168.153.130:9000 192.168.153.128:9001 192.168.153.129:9001 192.168.153.130:9001 --cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.153.129:9001 to 192.168.153.128:9000
Adding replica 192.168.153.128:9001 to 192.168.153.129:9000
Adding replica 192.168.153.130:9001 to 192.168.153.130:9000
>>> Trying to optimize slaves allocation for anti-affinity
[OK] Perfect anti-affinity obtained!
M: 274618a39848cd3e7c8fb0476703ac663eb4f098 192.168.153.128:9000
   slots:[0-5460] (5461 slots) master
M: b6eef47101d34c6f6905ea65467186051374f38d 192.168.153.129:9000
   slots:[5461-10922] (5462 slots) master
M: 76123e02af1a85ce730e12431a8fdc8aa28a0b2c 192.168.153.130:9000
   slots:[10923-16383] (5461 slots) master
S: 90734168c2e428ad1cfd70ce2b9506708b6f548b 192.168.153.128:9001
   replicates b6eef47101d34c6f6905ea65467186051374f38d
S: 3c17d33fd0270a711e3e00c1d95f4aa16ec2cc88 192.168.153.129:9001
   replicates 76123e02af1a85ce730e12431a8fdc8aa28a0b2c
S: 067da7a5d5e6b63b5617b18cf389ffa153b48c09 192.168.153.130:9001
   replicates 274618a39848cd3e7c8fb0476703ac663eb4f098
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.153.128:9000)
M: 274618a39848cd3e7c8fb0476703ac663eb4f098 192.168.153.128:9000
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 76123e02af1a85ce730e12431a8fdc8aa28a0b2c 192.168.153.130:9000
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: 3c17d33fd0270a711e3e00c1d95f4aa16ec2cc88 192.168.153.129:9001
   slots: (0 slots) slave
   replicates 76123e02af1a85ce730e12431a8fdc8aa28a0b2c
M: b6eef47101d34c6f6905ea65467186051374f38d 192.168.153.129:9000
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 067da7a5d5e6b63b5617b18cf389ffa153b48c09 192.168.153.130:9001
   slots: (0 slots) slave
   replicates 274618a39848cd3e7c8fb0476703ac663eb4f098
S: 90734168c2e428ad1cfd70ce2b9506708b6f548b 192.168.153.128:9001
   slots: (0 slots) slave
   replicates b6eef47101d34c6f6905ea65467186051374f38d
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

redis集群搭建完毕。 

 

至此。。redis集群搭建完毕了。。然后就是jedis来连接redis集群了

不是本片内容重点。。就先省略了。

如果有什么错误的地方,可以在下面留言指出 。 关于原理这部分楼主是自己了解过之后才来进行本篇的实践。。网上原理有很多,靠谱的实践缺很少。。不要眼高手低了,就有点low了。。

 

 

 

你可能感兴趣的:(centos7 搭建三主三从 redis5.0集群)