redis搭建高可用cluster集群

1 .在redis目录下新建文件夹

mkdir cluster

这里写图片描述
2 .在cluster目录下创建机器节点目录,每个服务在不同的端口号运行的
我的配置了6个节点,分别执行端口号为7001~7006

这里写图片描述

3 .将配置文件redis.conf复制到各目录下

cp redis.conf ../cluster/700x

4 .修改配置文件

如果是单机操作,可以不注释这行。如果是多个机器节点,需要改为其他节点机器可访问的ip, 否则创建集群时无法访问对应的端口,无法创建集群
bind 机器ip

port 7001 #修改端口号 7001-7006

daemonize yes #将no改为yes,这是redis后台运行

pidfile /var/run/redis_7006.pid #pidfile文件对应7001-7006

将以下的注释去掉,以下的配置信息与之前的离得很远,差不多在配置文件61%的位置
cluster-enabled yes #允许哨兵机制
cluster-config-file nodes-7001.conf #集群的配置 配置文件首次启动自动生成
cluster-node-timeout 5000 #允许连接超时的最大时间5s

也可以设置aof日志文件
appendonly yes #将no改为yes
注意:修改配置文件时候,对liunx指令应该要熟悉。在这里我们使用vi的替换命令,这样就可以更快的修改配置

:%s/700x/7001/g

5,配置成功,分别启动

建议写个shell文件,作为集群的整体启动,这里如何写就不做介绍了
启动指令:

src/redis-server /opt/redis/cluster/7001/redis.conf

redis相关进程查询指令:

ps -ef | grep redis

下图是我启动7001的截图,我还启动了6379(之前启动没关)
redis搭建高可用cluster集群_第1张图片

现在集群只是有这么服务器启动了,但各个服务是独立的,并没有联系。
从redis3.0之后才有了cluster集群配置。并且由ruby执行管理。

6 .安装ruby

本人建议源码安装,yum安装的时候,ruby版本不够,带来问题就很烦。
ruby安装教程

安完ruby他会提示少了rubygems依赖

7 .安装rubygems

rubygems安装教程

之后还是会提示错误,还差一个ruby与redis的插件

8 .安装ruby与redis的插件

安装ruby与redis的插件教程

9 .配置集群关系

这里写图片描述

命令:

./redis-trib.rb create --replicas 1 ip:port ip:port ip:port ip:portip:port

命令解释:
create 创建
replicas 集群
1 master / slave 的值
后面依次为ip地址和端口号

默认: 跟据主机的台数,和比值,就可以得到master为m台,前m台为master,后面的为slave,且根据比值,根据前后关系进行master-slave对应。

当前集群结构为:
redis搭建高可用cluster集群_第2张图片

这样的集群优势在于:
数据操作是分片的,这样每份数据的容灾处理,可以利用master下对应的slave进行处理。数据量容量更大。对于master挂了,该 master对应的小集群进行选举

10 .检查集群

进入任意一个服务器的客户端

cluster info  #查看集群状态
cluster nodes  #查看每个节点担任的角色以及,从属关系

这里写图片描述

11 .关闭指令

通过kill杀死进程

kill [pid]

如果需要参考jedis连接redis cluster测试可以戳这里

你可能感兴趣的:(redis)