Redis高可用集群搭建

Posted cosmos-wong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis高可用集群搭建相关的知识,希望对你有一定的参考价值。

绪论

       redis集群需要至少要三个master节点,下面将搭建三个master节点,并且给每个master再搭建一个slave节点,总共6redis节点,这里用三台机器部署6redis实例,每台机器一主一从。设备为192.168.137.11、192.168.137.12和192.168.137.13

1. 下载redis

http://www.redis.cn/download.html

技术图片

 

2.上传并解压

 tar -zxvf /redis-5.0.4.tar.gz 

  需要将redis分别上传到三台设备上执行编译安装,下面以192.168.137.11设备上的编译 、安装和配置为例

3.编译并安装redis

需要安装gcc,如果没有安装gcc,使用yum -y install gcc 安装即可

进入到redis-5.0.4目录,make & make install 即可执行编译和安装,安装后会在/usr/local/bin目录下生成命令文件

技术图片

4.拷贝并修改配置

在/opt/module目录下创建 redis文件夹,用以保存日志文件、dump文件和配置文件

mkdir -p /opt/module/redis/6379,80/logs  

技术图片

 

拷贝redis-5.0.4/redis.conf文件到/opt/module/redis/目录下,然后修改该配置文件。找到如下配置项,逐个修改

protected-mode no                                     (关闭保护模式)
port 6379                    

daemonize yes                                         (设置redis在后台启动)

pidfile /var/run/redis_6379.pid              

logfile "/opt/module/redis/6379/logs/redis_6379.log"  (设置日志文件的存放位置) 

dbfilename dump_6379.rdb                       (设置dump文件名)
dir "/opt/module/redis/6379"                  (设置dump文件和nodes文件的存放位置)               
masterauth bigdata                             (设置集群节点间访问密码,跟上面一致)

requirepass bigdata                            (设置redis访问密码)

cluster-enabled yes                           (启动集群模式)
cluster-config-file nodes-6379.conf           (集群节点信息文件,这里800x最好和port对应上)
cluster-node-timeout 5000
# bind 127.0.0.1      注释掉该项

 

拷贝上面的配置文件,分别命名为redis_6379.conf、redis_6380.conf,、vi修改redis_6380.conf文件,将6379替换为6380,命令为:%s/6379/6380/g

技术图片

然后再分别将它们移动到前面所创建的6380和6379文件夹中

 技术图片

在192.168.137.12和192.168.137.13做同样的操作。如果配置xync了直接同步即可

5.检查配置

检查三台设备上配置是否正确

技术图片

 

6.分别启动三台设备上的redis

启动命令为:

redis-server /opt/module/redis/6379/redis_6379.conf
redis-server /opt/module/redis/6380/redis_6380.conf 

为了方便操作可以在xshell或SecureCRT中,进行批量,如下面的在SecureCRT中,设置将命令发送到所有会话

技术图片

查看三台设备上的redis是否都启动成功:

技术图片

 

 

7.用redis-cli创建整个redis集群

redis5以前的版本集群是依靠ruby脚本redis-trib.rb实现,操作方法参照:https://www.cnblogs.com/wuxl360/p/5920330.html 此处使用更为便捷的redis-cli方式

redis-cli --cluster create --cluster-replicas 1 192.168.137.11:6379 192.168.137.11:6380  192.168.137.12:6379 192.168.137.12:6380 192.168.137.13:6379 192.168.137.13:6380

命令解读:代表为每个创建的主服务器节点创建一个从服务器节点,

 

8.验证集群

(1)连接任意一个客户端即可:./redis-cli -c -h -p (-a访问服务端密码,-c表示集群模式,指定ip地址和端口号)

redis-cli -a bigdata -c -h 192.168.137.11 -p 6379

 命令解释:-a访问服务端密码,-c表示集群模式,指定ip地址和端口号

技术图片

(2)cluster info(查看集群信息)

技术图片

(3)cluster nodes(查看节点列表)

192.168.137.11:6379> cluster nodes
0bd7e769345f4e053bbe83dbbc467af25c299462 192.168.137.11:6379@16379 myself,slave 185b8d64263b7c31c358c327fb2c9dce9a8ed773 0 1566901074000 1 connected
6877fd706dbb17508a4c3f279703fa66706852fc 192.168.137.11:6380@16380 slave 98328749670132748f687a26b6281a4b7163801c 0 1566901073546 5 connected
fd20d54152b0101008d872314268fd17cce39b3d 192.168.137.12:6379@16379 slave dda7a654ba16cbff3b30b25418104cee3709a454 0 1566901073646 7 connected
dda7a654ba16cbff3b30b25418104cee3709a454 192.168.137.13:6380@16380 master - 0 1566901074553 7 connected 5461-10922
98328749670132748f687a26b6281a4b7163801c 192.168.137.13:6379@16379 master - 0 1566901074553 5 connected 10923-16383
185b8d64263b7c31c358c327fb2c9dce9a8ed773 192.168.137.12:6380@16380 master - 0 1566901074653 8 connected 0-5460
192.168.137.11:6379>

 

如果上面的配置过程感觉有些难,没关系,参照另外博主:https://blog.csdn.net/qq_42815754/article/details/82912130

以上是关于Redis高可用集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

Linux集群:搭建高可用集群

搭建高可用mongodb集群——配置mongodb

搭建高可用web和数据库集群

Java进阶之光!手动搭建高可用的Redis5-0分片集群

Windows 2012 系统搭建高可用故障转移集群

六nginx 搭建高可用集群