Redis高可用集群搭建
Posted cosmos-wong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis高可用集群搭建相关的知识,希望对你有一定的参考价值。
绪论
redis集群需要至少要三个master节点,下面将搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用三台机器部署6个redis实例,每台机器一主一从。设备为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高可用集群搭建的主要内容,如果未能解决你的问题,请参考以下文章