高可用redis cluster集群搭建

redis集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特 性。Redis集群不需要
sentinel哨兵也能完成节点移除和故障转移的功能。需要将每个节点 设置成集群模式,这种集群模式没有中心节
点,可水平扩展,据官方文档称可以线性扩展到 1000节点。redis集群的性能和高可用性均优于之前版本的哨兵模
式,而且集群的安装配置,简单到令人发指。

至于redis安装,这里有详细的安装步骤:https://blog.csdn.net/baomw/article/details/88916102,对着一顿猛操作即可。

一个最简单的集群部署图如下,三主六从,真正生产应用的时候,就是九台机器(有钱人干的),三个一组,一组里面一主节点(master)二从(slave),当我们主节点挂掉的时候,会根据相关算法在配置的两个从节点中,从新选举出一个主节点,从而保证集群的可用性,至于具体怎么配置,看下即可。
在这里插入图片描述
在这里插入图片描述
如上图,为了模拟集群环境,我这边vm中创建了三台虚拟机,然后每台机器中起一个master和两个slave。模拟集群环境,当然生产使用的时候一般都是在不同的物理机上了。
在这里插入图片描述
上一篇文章说道,redis启动基于配置文件,所以如图,这边每台虚拟机上放置三套redis启动配置,模拟三台机器,文件名对应启动端口,6001-6003,7001-7003,8001-8003,。
详细配置如下;

daemonize: 后台模式   配置为 no
port: 端口号   对应端口即可
bind: 绑定的ip   注释掉
dir: redis数据文件存放位置,即redis的工作空间目录,配置到对应的db目录即可
cluster-enabled yes: 开启集群模式 
cluster-config-file: 集群配置文件的位置    改下文件名端口号即可
cluster-nodetimeout: 超时设置   
appendonly yes: 持久化 
protected-mode no: 保护模式  
requirepass redis: 密码
masterauth: 集群通信密码  和登录密码一致即可

按照如上配置完成之后,使用启动命令分别启动所有节点:

redis-db-7001/bin/redis-server redis-db-7001/etc/redis.conf

启动完成之后的效果如下:

在这里插入图片描述
可以看到,现在所有的节点都已经使用集群模式(cluster)启动了,但是是不是说明我们现在的所有节点就已经完成集群了呢,显然不是。
现在我们可以使用redis-client来构建我们的集群,构建方式也比较简单,命令如下:

redis-cli -a baomw --cluster create --cluster-replicas 2 192.168.179.101:6001 192.168.179.102:7002 192.168.179.103:8003 192.168.179.102:7001 192.168.179.101:6002 192.168.179.103:8002 192.168.179.103:8001 192.168.179.101:6003 192.168.179.102:7003 

随便找一个节点,进入bin目录,参数解释:
-a baomw 即密码是baomw,你们是多少就设置多少就可以了
–cluster create 创建集群
–cluster-replicas 2 表示一个master有几个slave,redis三个一组或两个一组,一个集群至少三组,如果我们有六台机器,很明显,一个master对应一个slove,那么这里写1,我现在这里有9台机器,那么,算一下很容易算出来,一台master对应两个slave,这里写2即可
后面这一坨即是我们所有的节点的ip地址+端口,注意这里写法有点东西的,为了保证高可用,我们搭建集群首先保证我们的master和slave不在一台机器上,配置2的话,会顺序三个分成一组,然后再每一组里面根据选出一个master和两个slave。
在这里插入图片描述
执行命令后,会弹出这个选项,让你确定是不是执行这种策略,如上图,主意三点:
1,m表示改节点是master,s表示slave
2,只有master节点才会显示,即我们的槽点值范围
3,标识出了该slave对应的masterd的id
在这里插入图片描述
输入yes,即可开始构建我们的集群了当弹出如图提示的时候表示集群已经构建好了,然后槽点也都分配好了

下面我们来访问下这个集群,当然访问方式也得用我们的集群命令来访问了,我们随机访问一台master即可。
在这里插入图片描述

redis-cli -a baomw -c -h 192.168.179.101 -p 6001

命令参数如下:
-a baomw 密码
-c 表示用集群方式访问
后面不说了

如上图,我set了baomw baomw,可以看到算出来key对应的槽点值为,13925,然后客户端重定向到了192.168.179.130:8003这个master上。表示我们的集群已经可以正常工作了

下面再介绍两个命令:
在这里插入图片描述

cluster info
cluster nodes

如上,可以看到当前接点信息,还有集群的所有的节点信息。

如上,我们整个redis集群就搭建好了,至于具体测容灾测试你们有兴趣的可以自己试试,这里就不在多说了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章