redis安装(集群版)
工具:redis-3.0.0.gem
集群架构
再安装集群之前我们先简单了解一下redis的居群原理
我们先看一下redis集群架构图
我们从上边可以看出,redis集群是由多个redis主节点和redis从节点组成,客户端与redis节点直接相连。redis集群中内置16384个hash槽,集群根据节点的多少把槽平均分配到每一个节点上,当我们往redis集群中存放一个key-value的时候,集群会先使用一个crc16算法进行运算,再把求出的结果和16384进行求余算出应该放在那个槽里,最后把值放在对应的槽里。
节点与hash槽的关系图如下
容错机制
redis集群中有一个容错机制
集群中每一个节点使用ping-pong机制进行通信,内部使用二进制协议优化传输速度和带宽。
当节点A发现节点B出错了,A会向其他节点发送消息,让其他节点和节点B进行通信,如果有一半的节点认为B节点出错了,那么就认为该节点挂了,如果该节点存在从节点,那么从节点扶正,集群继续工作,如果没有,那么整个集群就挂掉了。
下面我们来学习集群的安装
redis集群安装
由于集群的容错机制,我们必须保证他能投票超过半数以上,所以我们选择搭建三个主节点,再加三个从节点,一共六个节点
由于本人电脑配置有限,起不来六个虚拟机,所以我打算再同一台虚拟机上搭建,用不同的端口号来区分。
具体我们要做的是搭建六个redis节点,然后借助redis-3.0.0.gem工具搭建九年
准备六个节点
关于虚拟机搭建redis请看我的另一篇博客https://blog.****.net/weixin_38497513/article/details/81335327
再这篇博客中搭好了一个redis,也就是搭好了一个节点,接下来要做的就是复制这6分这个节点(因为之前搭好的我作为单机版使用了,如果不使用单机版的小伙伴可以赋值5份)
1.创建一个文件夹redis-cluster(用来存放redis集群)
2.将redis/bin 文件夹下的东西复制一份到redis-cluster/redis01中
3.把dump.rdb(快照文件)删了,因为我们需要一个干净的节点(如果你搭建好的redis没有使用,那么跳过此步骤)
4.改redis.conf
(1)修改端口号
vim redis.conf
(2)打开集群模式
linux下查找字符串 输入/cluster(cluster是你需要找的字符串),然后回车
5.复制5份刚才配置好的节点
cp -r redis01/ redis02
6.修该redis02/03/04/05/06文件的端口号
修改过程和步骤4的(2)一样
在此略过
7.使用批处理启动每个redis实例(一个一个启动太麻烦了)
编辑start-all.sh文件,没错,你打开它的时候是个空文件,然后输入以下图片中的信息
vim start-all.sh
8.改成可执行权限
我们写好的start-all.sh文件没有可执行权限,所以我么需要修改它的权限
chmod +x start-all.sh
9.启动
启动六个节点
到这里我们六个实例就准备完了
接下来我们开始搭建集群
我们需要运行一个使用ruby编写的脚本,所以我们需要运行ruby的环境
集群搭建
10.安装ruby
如果你的linux里ruby就不需要安装
yum install ruby
yum install rubygems(安装ruby包管理器)
11.使用xftp5把工具包redis-3.0.0.gem传到centos上
redis-3.0.0.gem是搭建集群需要使用的工具
12.安装redis-3.0.0.gem(ruby脚本运行依赖的包)
命令:gem install redis-3.0.0.gem
13.运行redis中的redis-trib.rb(redis是我们安装单机版的时候解压好的redis文件)
它运行需要包(redis-3.0.0.0.gem)和Ruby运行环境
我们把这个脚本复制到redis-cluster中
14,开始搭建集群
执行命令:./redis-trib.rb create --replicas 192.168.2.100:7001 192.168.2.100:7002 192.168.2.100:7003 192.168.2.100:7004 192.168.2.100:7005 192.168.2.100:7006
使用集群
我们集群搭建完毕了,该如何使用呢?
使用redis连接客户端连接集群
连接:redis01/redis-cli -p 7006 -c
注意:要有-c ,如果没有跳不到其他的节点上
查看集群状态:
命令:cluster info
查看当前急群众有多少节点
命令:cluster nodes