简言
1. redis5.0版本以前集群的部署是使用ruby脚本完成的,ruby脚本的安装少略麻烦(主要原因是系统自动安装的版本太低,无法部署集群,必须手动安装)
2. redis5.0版本以后把集群的部署集成到了create_cluster中(位置:redis根目录/utils/create-cluster/create-cluster),更简单,几条简单的命令即可部署一个简单版的集群,具体示例见笔者的这篇博客,ubuntu16 redis5.0以后版本集群部署示例_papaya的博客
3. 如果您在参考本篇博客进行操作时遇到了其他未知问题,请参考笔者的这篇博客,centos版本的redis5.0以下集群搭建
系统:ubuntu 16.04 64位
架构
开启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
4. 修改文件 redis01/redis.conf,修改redis.conf完毕后,记得保存。具体修改如下:
4.1 绑定的IP地址,改为本机的局域网IP,bind属性,比如笔者的测试机器IP是 192.168.130.113,如下图
4.2 绑定的端口号,port属性, 默认是6379,改为8001,如下图
4.3 打开集群模式,即cluster-enabled 属性设置为yes,如下图
5. 把文件夹redis01目录,复制在同目录下,即redis-cluster-4.0.14目录下,分别命名redis02, redis03, redis04, redis05, redis06,这便是我们的6个redis节点,如下图
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进程,如下图所示
9. 至此我们开启来了6个redis节点
10. 搭建集群需要ruby脚本,所以我们需要安装ruby,很简单。我们先运行命令 apt-get install ruby
gem 安装gem,安装成功后,运行命令 ruby -v,查看ruby的版本
11. 注意如果ruby版本过旧是无法部署redis集群的,比如ruby2.0.0还是2015年的版本,就没办法部署redis集群,如果您遇到了这样的版本,请按照笔者的这篇博客安装ruby,建议和笔者的ruby版本一致,这样不会出什么问题
12. 把redis-4.0.14/src/redis-trib.rb文件拷贝到我们的redis集群目录,即 /usr/local/redis-cluster-4.0.14目录下,现在目录结构如下图
13. 下载gem对redis的支持包,下载到本目录
14. 安装这个gem包,运行命令 gem install redis-4.1.3.gem,(笔者第一次执行时出现了一个警告,所以又执行了一次,哈哈)
15. 至此,所有的准备工作已经完成
16. 创建集群,运行命令 ./redis-trib.rb create --replicas 1 192.168.130.113:8001 192.168.130.113:8002 192.168.130.113:8003 192.168.130.113:8004 192.168.130.113:8005 192.168.130.113:8006 中途有个询问,问你是不是满意这种自动分配;如果你不满意,输入no,它会退出,什么都不做
注意:若使用的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包的详细版本:
17 . 搭建成功,如下图所示(红框处有标出三个主redis和槽的分配,可以看到8001,8002,8003为主,8004,8005,8006是从)