redis集群搭建的方式
发布日期:2021-11-04 11:54:18 浏览次数:0 分类:技术文章

redis集群搭建

##一. 配置后台启动

  1. 下载redis压缩包,然后解压压缩文件;
  2. 进入到解压缩后的redis文件目录(此时可以看到Makefile文件),编译redis源文件;
  3. 把编译好的redis源文件安装到/usr/local/redis目录下,如果/local目录下没有redis目录,会自动新建redis目录;
  4. 进入/usr/local/redis/bin目录,直接./redis-server启动redis(此时为前端启动redis);
  5. 将redis启动方式改为后端启动,具体做法:把解压缩的redis文件下的redis.conf文件复制到/usr/local/redis/bin目录下,然后修改该redis.conf文件->daemonize:no 改为daemonize:yse;
  6. 在/bin目录下通过./redis-server 启动服务 ./redis-cli启动客户端

二. redis集群搭建需要的环境

2.1 Redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了,所以2个节点无法构成集群
2.2 要保证集群的高可用,需要每个节点都有从节点,也就是备份节点,所以redis集群至少需要6台服务器(因为没有那么多服务器,也启动不了那么多虚拟机,所以在这么搭建的是伪分布式集群,既一台服务器虚拟机运行6个redis实例,端口表一次修改为7001-7006,当然实际生产环境当中redis集群搭建跟这里一样)

三.集群搭建具体步骤如下(注意要关闭防火墙,关闭防火墙参考:

3.1 在redis安装父目录下 usr/local目录下新建一个空目录redis-cluster目录,用于存放集群节点
在这里插入图片描述
3.2 把redis目录下的bin目录下的所有文件复制到/usr/local/redis-cluster/redis01目录下,不用担心这里没有redis01目录,会自动创建的。操作命令如下(注意当前所在路径)

cp -r redis/bin/ redis-cluster/redis01

在这里插入图片描述
3.3 删除redis01目录下的快照文件dump.rdb,并且修改该目录下的redis.cnf文件,具体修改两处地方:一是端口号修改为7001,二是开启集群创建模式,打开注释即可。分别如下图所示:
删除dump.rdb文件
在这里插入图片描述
修改端口号为7001,默认是6379
在这里插入图片描述
将cluster-enabled yes 的注释打开
在这里插入图片描述
3.4 将redis-cluster/redis01文件复制5份到redis-cluster目录下(redis02-redis06),创建6个redis实例,模拟Redis集群的6个节点。然后将其余5个文件下的redis.conf里面的端口号分别修改为7002-7006。分别如下图所示:
创建redis02-06目录
在这里插入图片描述
分别修改redis.conf文件端口号为7002-7006
在这里插入图片描述
3.5 接着启动所有redis节点,由于一个一个启动太麻烦了,所以在这里创建一个批量启动redis节点的脚本文件,命令为start-all.sh,文件内容如下:

cd redis01./redis-server redis.confcd ..cd redis02./redis-server redis.confcd ..cd redis03./redis-server redis.confcd ..cd redis04./redis-server redis.confcd ..cd redis05./redis-server redis.confcd ..cd redis06./redis-server redis.confcd ..

3.6 创建好启动脚本文件之后,需要修改该脚本的权限,使之能够执行,指令如下:

chmod +x start-all.sh

在这里插入图片描述
3.7 执行start-all.sh脚本,启动6个redis节点
在这里插入图片描述
(注意如果启动不起来,就单个进入redis01-redis06 通过刷新redis.conf方式启动redis ./redis-server redis.conf)

3.8 至此6个redis节点启动成功,接下来正式开启搭建集群,以上都是准备条件。

要搭建集群的话,需要使用一个工具(脚本文件),这个工具在redis解压文件的源代码里。因为这个工具是一个ruby脚本文件,所以这个工具的运行需要ruby的运行环境,就相当于java语言的运行需要在jvm上。所以需要安装ruby,指令如下:

3.9把ruby相关的包安装到服务器,我这里用的是redis-3.0.0.gem,大家需要注意的是:redis的版本和ruby包的版本最好保持一致。
将Ruby包安装到服务器:需要先下载再安装,如图
在这里插入图片描述
路径最好跟redis-cluster在相同目录下
在这里插入图片描述
安装命令如下:

gem install redis-3.0.0.gem

在这里插入图片描述
3.9 上一步中已经把ruby工具所需要的运行环境和ruby包安装好了,接下来需要把这个ruby脚本工具复制到usr/local/redis-cluster目录下。那么这个ruby脚本工具在哪里呢?之前提到过,在redis解压文件的源代码里,即redis/src目录下的redis-trib.rb文件。旧版本的redis没有,需要下载

https://pan.baidu.com/s/1nHmmlXWptRzKT4LXWO-h5A
提取码:ba5m

3.10 将该ruby工具(redis-trib.rb)复制到redis-cluster目录下,指令如下:

cp redis-trib.rb /usr/local/redis-cluster

然后使用该脚本文件搭建集群,指令如下:

./redis-trib.rb create --replicas 1 47.106.219.251:7001 47.106.219.251:7002 47.106.219.251:7003 47.106.219.251:7004 47.106.219.251:7005 47.106.219.251:700647.106.219.251:这里的ip是我本人的,需要把你的ip手动写上去

在这里插入图片描述
(注意:如果这一步发生错误,需要你去每个节点的redis.conf中修改三个地方,注释掉,#bind 127.0.0.1 yes修改为no protected-mode no 把cluster-enabled yes的注释去掉)

3.11 中途有个地方需要手动输入yes即可
在这里插入图片描述
至此,Redi集群搭建成功!大家注意最后一段文字,显示了每个节点所分配的slots(哈希槽),这里总共6个节点,其中3个是从节点,所以3个主节点分别映射了0-5460、5461-10922、10933-16383solts。

3.11 最后连接集群节点,连接任意一个即可:

redis01/redis-cli -p 7001 -c 

注意:一定要加上-c,不然节点之间是无法自动跳转的!如下图可以看到,存储的数据(key-value)是均匀分配到不同的节点的:

在这里插入图片描述

最后,加上两条redis集群基本命令:
1.查看当前集群信息

cluster info
1
2.查看集群里有多少个节点

cluster nodes

上一篇:redis搭建主从关系
下一篇:linux检查防火墙是否关闭