Redis集群搭建(单设备,多设备)

Redis集群搭建(单设备,多设备)

准备

⑴ 系统环境:Nitrux-Release-1.0.9-5 和 Centos-7
⑵Redis版本:Redis-4.0.8
国内下载地址(比较慢):https://redis.io/
国外下载地址:http://www.redis.cn/

第一步 安装Redis

已经安装过的直接看第二步

安装的就简单了,把安装包下载下来,解压,编译,运行即可。

命令行下移动到软件包所存放的目录,运行下面指令解压

tar -zxvf redis-4.0.8.tar.gz

Redis集群搭建(单设备,多设备)_第1张图片

解压完成后移动到任意目录,看你喜欢,不移动也是可以的。我这里被我移动到了/home/alex/Software/redis-4.0.8/6379这个目录下面:

Redis集群搭建(单设备,多设备)_第2张图片

执行指令make进行编译:

Redis集群搭建(单设备,多设备)_第3张图片

等待编译完成后,执行指令

src/redis-server

Redis集群搭建(单设备,多设备)_第4张图片

出现如下界面说明安装并运行成功。

Redis集群搭建(单设备,多设备)_第5张图片

完美。

第二步 单设备集群配置

在单机情况下,我们要用6个端口模拟6台主机,实现单设备集群。现在就一步一往下走。

1、修改redis.conf文件

修改redis.conf文件,可以先拷贝一份再做修改

cp redis.conf redis.conf2

Redis集群搭建(单设备,多设备)_第6张图片

修改我们刚刚拷贝的文件,需要修改的内容如下:

⑴屏蔽限制本地访问,在bind 127.0.0.1之前加#

Redis集群搭建(单设备,多设备)_第7张图片

protected-mode后的yes改为no

Redis集群搭建(单设备,多设备)_第8张图片

daemonize后的no改为yes

修改redis.conf文件4

⑷去掉cluster-enabled yes前面的#(按Esc键退出i编辑模式,输入/,再输入cluster-enabled,回车,就可以快速找到)

Redis集群搭建(单设备,多设备)_第9张图片

⑸去掉cluster-node-timeout 15000前面的#(按Esc键退出i编辑模式,输入/,再输入cluster-node-timeout,回车,就可以快速找到)

修改redis.conf文件6

执行完上面五步,按Escwq退出保存。

2、拷贝redis文件夹

将上面修改完成的redis.conf文件的文件夹分别拷贝一份到刚刚创建的6个文件夹里面。

cp -r redis cluster/7000
cp -r redis cluster/7001
cp -r redis cluster/7002
cp -r redis cluster/7003
cp -r redis cluster/7004
cp -r redis cluster/7005

Redis集群搭建(单设备,多设备)_第10张图片

3、再次修改redis.conf文件

刚刚并没有修改端口号,现在就到各个文件夹底下修改redis.conf文件里面port后面的数字,即端口号,对应各个文件夹。

Redis集群搭建(单设备,多设备)_第11张图片

Redis集群搭建(单设备,多设备)_第12张图片

修改结果

Redis集群搭建(单设备,多设备)_第13张图片

4、分别启动Redis服务

需要修改的部分已经完全修改完成,现在分别启动6个不同端口的服务。(切记,进入对应目录启动)

src/redis-server ./redis.conf

Redis集群搭建(单设备,多设备)_第14张图片

各个服务启动成功

Redis集群搭建(单设备,多设备)_第15张图片

5、集群配置

进入/home/alex/Software/redis-4.0.8/cluster/7005/src下,执行创建集群语句,报了一个错,如下(没报错的可以忽略)

./redis-trib.rb  create  --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7000

Redis集群搭建(单设备,多设备)_第16张图片

出现报错:安装ruby和redis接口

apt install ruby
gem install redis

安装ruby

安装redis接口

安装完成后,再次执行创建集群指令:

Redis集群搭建(单设备,多设备)_第17张图片

单机集群配置成功

Redis集群搭建(单设备,多设备)_第18张图片

第三步 多设备集群配置

第三部分我将介绍多台设备的集群配置以及在原有的集群配置上面加入新的设备。

环境介绍:虚拟机3台

虚拟机3台

它们的IP地址分别是:
1. Nitrux-Release-1.0.9-5: 10.16.71.126 (别名Node1)
2. CentOS-64-01: 10.16.71.149 (别名Node2)
3. CentOS-64-02: 10.16.71.125 (别名Node3)

多台设备的集群配置

这一部分我就不会再详细介绍,多设备集群实现与单机集群的实现大同小异。所以,我就把不同的地方拿出来介绍一下,其他与单机集群相同的我就不再重复介绍。

上面我们给出了3个虚拟机,在这部分我只需要用到其中两个,如果说你会配置两个就一定会配置三个四个,所以说我在这里只用到两个。

好,现在选择Node1和Node2作为本次操作演示。在Node1启动4个Redis服务,在Node2启动2个Redis服务。

不同点一

bind需要填写真实地址

Redis集群搭建(单设备,多设备)_第19张图片

不同点二

文件名称不可相同,自定。(按Esc键退出i编辑模式,输入/,再输入cluster-config-file,回车,就可以快速找到)

Redis集群搭建(单设备,多设备)_第20张图片

其他照常

⑴启动Node2的2个Reids服务

Redis集群搭建(单设备,多设备)_第21张图片

⑵启动Node1的4个Reids服务

Redis集群搭建(单设备,多设备)_第22张图片

⑶创建集群

./redis-trib.rb  create  --replicas 1 10.16.71.126:7000 10.16.71.126:7001 10.16.71.126:7002 10.16.71.126:7003 10.16.71.149:7000 10.16.71.149:7001

Redis集群搭建(单设备,多设备)_第23张图片

创建集群成功,和单机操作方式完全相同

Redis集群搭建(单设备,多设备)_第24张图片

⑷测试一下

Redis集群搭建(单设备,多设备)_第25张图片

完美

可能出现错误

(有新错误欢迎留言告知)

错误1:

无法连接到远程Redis服务器。

Redis集群搭建(单设备,多设备)_第26张图片

此时在远程服务器输入以下指令可以解决

iptables -F

集群加入新设备

当集群各个节点扛不住业务的需要时,我们可能需要往集群里添加新的节点以供业务的正常使用,现在介绍如何添加新节点。

⑴在Node3上面启动2两个Redis服务

Redis集群搭建(单设备,多设备)_第27张图片

⑵加入主节点

./redis-trib.rb add-node 10.16.71.125:7000 10.16.71.126:7001

第一个地址为要加入集群的地址
第二个地址为存在集群内的任意主地址

Redis集群搭建(单设备,多设备)_第28张图片

src/redis-cli -c -h 10.16.71.126 -p 7002 cluster nodes

检查一下发现已经添加进来

Redis集群搭建(单设备,多设备)_第29张图片

⑶加入为从节点

 ./redis-trib.rb add-node --slave --master-id 7614c25cc902f21da6725a39b310422707395aa9  10.16.71.125:7001 10.16.71.126:7003

接下来还要把7001做为7000的从节点也加入到集群里边儿来,这里的话我们首先要记住7001这个主节点的节点id,从节点加入到集群的时候要用到.。

第一个参数:从节点对应主节点的id号
第二个参数:从节点本身
第三个参数:在集群内的任意一个才节点的地址

Redis集群搭建(单设备,多设备)_第30张图片

验证一下:

Redis集群搭建(单设备,多设备)_第31张图片

好,已经加进来了。

参考内容

  1. redis集群搭建(同机器、不同机器搭建)
    https://blog.csdn.net/u012042021/article/details/72818759
  2. Redis Cluster error
    https://stackoverflow.com/questions/37193338/redis-cluster-error
  3. Could not connect to Redis No route to host问题解决
    https://blog.csdn.net/sparkexpert/article/details/51039760
  4. (error) MOVED 原因和解决方案
    https://www.fashici.com/tech/356.html
  5. redis cluster 集群配置示例: 创建, 添加节点, 重新分片, 删除节点
    https://blog.csdn.net/reyleon/article/details/51454334

你可能感兴趣的:(后端开发)