您的位置:首页 > 数据库 > Redis

5.linux/windows下搭建redis集群

2017-12-07 21:14 120 查看

1.创建多个虚拟机(都装上redis)

(1)使用已经安装好redis的centos,将redis.conf文件中允许集群设置打开



(2)测试环境下直接用vmware把一个安装好redis的centSO克隆几次,具体操作如下:
首先选择一个安装好redis的centos,网络适配器选择桥接模式
右键CentSO->管理->克隆->下一步->完整克隆->选择网络适配器->高级->生成随机mac地址
打开centos系统,分别查询ip地址记录下来,同时测试结点之间是否能相互ping通(可以看到桥接模式下保证了同一网段):
由于redis的集群至少需要3个master,每个master分配1个slave则至少需要个6redis服务
slave0:(单独用来开启集群服务)

slave1:192.168.88.139
slave2:192.168.88.140
slave3:192.168.88.141
slave4:192.168.88.142

slave5:192.168.88.143

slave6:192.168.88.144

(3)我们在slave0上调用集群工具,将slave1~slave6的redis服务建立集群
有时候虚拟机ip变化可以命令来改变ip:ifconfig 网卡 ip

2.slave0服务所在机器上下载集群工具

(1)先安装curl



(2)再安装rvm(版本控制工具)





等待安装完成后



结果如下



(3)查看版本库中有的ruby版本





选择一个下载



下载完成后,查看当前的ruby版本是否是刚刚下载的版本



(4)使用gem命令安装redis接口,完成后在redis命令中就可以看到这个redis-trib.rb可执行文件了



进入redis的安装目录(/home/downloads/redis.3.0.4/src)查看这个工具



3.在slave0上使用集群工具

(1)执行ruby redis-trib.rb(首先确保所有centos上面的redis服务都开启成功/且6379可以ping通)
其中n表示为每个master分配n个slave



查看结果3个master3个slave,输入yes保存上面的配置



配置生效,等待集群的加入,等待下面信息说明搭建成功



6个redis服务中任选一个进入客户端,cluster nodes查看结点状态



可以看到3master/3slave
逐个设置密码,这个密码是连接集群的密码集群中所有机器都必须保证密码一致



六个机器都设置完毕之后,输出刚刚设置的auth重写配置生效



4.测试集群数据同步

由于master才能读写,slave只能进行读,我们在master中创建一个key去slave中查找

slave1:192.168.88.139(m)
slave2:192.168.88.140(m)
slave3:192.168.88.141(m)
slave4:192.168.88.142(s)

slave5:192.168.88.143(s)

slave6:192.168.88.144(s)

(1)在slave3(m)中插入一个数据



(2)在slave1(s)中读取这个数据,通过命令切换到slave3客户端下



5.集群常用命令

首先我们调用一下刚刚的集群工具查看一下



通过redis-trib.rb对集群的操作就这10个命令,如下
(1)create:创建集群
(2)check:检查集群(直接检查一个结点)



(3)fix:修复集群(会先check,如果集群检查出异常就会执行修复流程,异常:slot未完全分配异常/存在迁移中slot异常)
(4)reshard:在线迁移slot,参数见上图
(5)add-node:添加结点
将已有的master的id作为参数将它添加为一个slave这里将准备好的slave7:192.168.88.145添加为slave3的从节点(slave3_id见上图那一串字符串)





(6)del-node:删除结点
删除slave结点(slave不包含数据直接删除),这里我们删掉刚刚创建的slave7



删除master结点(需要先移动slot)这里我们删除slave3
(7)set-timeout:设置结点之间的心跳超时时间
(8)call:在集群全部节点上执行命令
(9)import:将外部redis数据导入集群

6.java客户端操作集群

需要设置密码,我这里设置为pword
在客户端下进行操作会提示auth required,输入密码就可以了:auth pword
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: