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(之前启动没关)
现在集群只是有这么服务器启动了,但各个服务是独立的,并没有联系。
从redis3.0之后才有了cluster集群配置。并且由ruby执行管理。
6 .安装ruby
本人建议源码安装,yum安装的时候,ruby版本不够,带来问题就很烦。
ruby安装教程
安完ruby他会提示少了rubygems依赖
7 .安装rubygems
之后还是会提示错误,还差一个ruby与redis的插件
8 .安装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对应。
当前集群结构为:
这样的集群优势在于:
数据操作是分片的,这样每份数据的容灾处理,可以利用master下对应的slave进行处理。数据量容量更大。对于master挂了,该 master对应的小集群进行选举
10 .检查集群
进入任意一个服务器的客户端
cluster info #查看集群状态
cluster nodes #查看每个节点担任的角色以及,从属关系
11 .关闭指令
通过kill杀死进程
kill [pid]
如果需要参考jedis连接redis cluster测试可以戳这里