redis5集群搭建

装了三个redhat7,每个分配2G内存,关闭了防火墙和selinux 而且配置的网络环境为nat转发,并且改了静态ip三台的ip分别为:192.168.101.128,192.168.101.129,192.168.101.127保证三台机子可以互相ping通,并且跟宿主机可以ping通

三台虚拟机,三主三从,每个机子部署一个主master还有一个备的slaver,然后把三个机子整合为一个cluster

一.安装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编译器

    echo "/dev/cdrom /mnt/ iso9660 defaults 0 0" >> /etc/fstab 

 mount -av

     yum install gcc-c++ -y

      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(上午用的redis 4.0安装,太麻烦。需要安装一些库,而且redhat7 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集群搭建完毕。 

(创建集群的时候,报了一个错,到129没有route,原因是忘了关129的防火墙,执行iptables -F   setenforce 0.后可正常创建)

 

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

开发我不会,暂时先放一放

posted on 2019-07-27 17:05  小舟868  阅读(135)  评论(0)    收藏  举报

导航