centos7 redis5.0以前版本 集群部署示例 - 第一篇

简言

1. redis5.0版本以前的集群部署是使用ruby脚本完成的,ruby脚本的安装少略麻烦(主要原因是系统自动安装的版本太低,无法部署集群,必须手动安装)

2. redis5.0版本以后的集群部署集成到了create_cluster中(位置:redis根目录/utils/create-cluster/create-cluster),更简单,几条简单的命令即可部署一个简单版的集群,具体示例见笔者的这篇博客,https://blog.csdn.net/yzf279533105/article/details/105563361

 

示范(第一种情况,也就是redis5.0版本以前的)

版本:笔者使用的redis版本是redis4.0.14,下载地址见:https://download.csdn.net/download/yzf279533105/12050914

            使用的ruby版本是ruby-2.6.5,下载地址见:https://download.csdn.net/download/yzf279533105/12043129

            使用的rubygem对redis的管理包,下载地址见:https://download.csdn.net/download/yzf279533105/12051029

原理:开启6个独立的redis服务器,然后使用ruby脚本把它们连接起来,ruby会自动帮我们分配好6个节点的主从关系

1. 在目录 /usr/local下新建一个文件夹 redis-cluster-4.0.14,该目录用来存放我们所有的redis节点示例

2. 在新建的目录redis-cluster-4.0.14 中创建一个文件夹 redis01,这个目录用来存放redis示例节点1的文件

3. 在新建的目录 redis01 中放入以下文件,如下图,注意这些文件原来的位置,这是笔者安装redis4.0.14的目录,大都是redis4.0.14编译出来的

    redis-benchmark        原位置:     /usr/local/redis/redis-4.0.14/src/

    redis-check-aof          原位置:      /usr/local/redis/redis-4.0.14/src/

    redis-check-rdb          原位置:      /usr/local/redis/redis-4.0.14/src/

    redis-cli                      原位置:      /usr/local/redis/redis-4.0.14/src/

    redis.conf                   原位置:      /usr/local/redis/redis-4.0.14/

    redis-server                原位置:      /usr/local/redis/redis-4.0.14/src

    redis-sentinel                  我们自建的软连接,即命令 ln -s redis-server redis-sentinel

     centos7 redis5.0以前版本 集群部署示例 - 第一篇_第1张图片

4. 修改文件 redis01/redis.conf,修改redis.conf完毕后,记得保存。具体修改如下:

    4.1 绑定的IP地址,改为本机的局域网IP,bind属性,比如笔者的测试机器IP是 192.168.127.130,如下图

    centos7 redis5.0以前版本 集群部署示例 - 第一篇_第2张图片

    4.2 绑定的端口号,port属性, 默认是6379,改为8001,如下图

    centos7 redis5.0以前版本 集群部署示例 - 第一篇_第3张图片

    4.3 打开集群模式,即cluster-enabled 属性设置为yes,如下图

    centos7 redis5.0以前版本 集群部署示例 - 第一篇_第4张图片

5. 把文件夹redis01目录,复制在同目录下,即redis-cluster-4.0.14目录下,分别命名redis02, redis03, redis04, redis05, redis06,这便是我们的6个redis节点,如下图

centos7 redis5.0以前版本 集群部署示例 - 第一篇_第5张图片

6. 重复步骤4的修改,把里面的redis.conf文件里面的绑定端口依次改为8002,8003,8004,8005,8006

7. 启动这6个redis节点,一个一个启动太麻烦了,我们做个批处理,start_all.sh,文件内容如下

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

8. 启动脚本bash start_all.sh,我们运行命令 ps axu | grep redis 查看下redis进程,如下图所示

centos7 redis5.0以前版本 集群部署示例 - 第一篇_第6张图片

9. 至此我们开启来了6个redis节点

10. 搭建集群需要ruby脚本,所以我们需要安装ruby,不要使用系统自动安装,因为系统安装的ruby版本太低,无法部署redis集群。我们先运行命令 yum install gem 安装gem,安装成功后,运行命令 ruby -v,查看ruby的版本,会发现版本太旧了,如下图

centos7 redis5.0以前版本 集群部署示例 - 第一篇_第7张图片

11. 由于ruby2.0.0还是2015年的版本,无法部署redis集群,接下来请按照笔者的这篇博客 :https://blog.csdn.net/yzf279533105/article/details/103668279 安装ruby,建议和笔者的ruby版本一致,这样不会出什么问题

12. 把redis-4.0.14/src/redis-trib.rb文件拷贝到我们的redis集群目录,即 /usr/local/redis-cluster-4.0.14目录下,现在目录结构如下图

centos7 redis5.0以前版本 集群部署示例 - 第一篇_第8张图片

13. 从上面的地址 https://download.csdn.net/download/yzf279533105/12051029 下载gem对redis的支持包,下载到本目录

14. 安装这个gem包,运行命令 gem install redis-4.1.3.gem

注意:可能报出这样的错误,如下图:

说明需要重新安装redis的zlib库,具体操作如下

1、cd ruby-2.6.5/ext/zlib目录,执行 ruby ./extconf.rb、make 、make install命令。

2、若make时报错(chmod +x Makefile):make: *** No rule to make target `/include/ruby.h', needed by `zlib.o'.  Stop.

3、更改Makefile文件, zlib.o: $(top_srcdir)/include/ruby.h  改成   zlib.o: ../../include/ruby.h;再重新make就可以成功了

15. 至此,所有的准备工作已经完成

16. 创建集群,运行命令 ./redis-trib.rb create --replicas 1 192.168.11.190:8001 192.168.11.190:8002 192.168.11.190:8003 192.168.11.190:8004 192.168.11.190:8005 192.168.11.190:8006

注意1:若使用的redis是5.0版本以上,则会报错,类似下面

WARNING: redis-trib.rb is not longer available!You should use redis-cli instead

意思是redis-trib.rb很快就不能再使用了,可以使用redis-clis来代替,所以笔者这里给出了redis, ruby, gem包的详细版本:

注意2:也有可能报出这样的错误,如下图

这个时候说明ruby脚本还缺乏redis的组件,也就是刚才的 gem install redis-4.1.3.gem未执行成功,我们重新执行下即可,安装成功时会出现下面的提示,这样就是正常的

centos7 redis5.0以前版本 集群部署示例 - 第一篇_第9张图片

17 . 搭建成功,如下图所示(红框处有标出命令和槽的分配)

centos7 redis5.0以前版本 集群部署示例 - 第一篇_第10张图片

 

 

 

你可能感兴趣的:(redis,redis集群示例,redis集群部署,redis5.0以下版本部署)