redis cluster部署笔记

官方文档:https://redis.io/topics/cluster-tutorial

同时还参考了这位作者的步骤:https://www.jianshu.com/p/813a79ddf932,但他是所有节点都放置在了同一台机器,所以不存在防火墙拦截端口问题。

我搞了两台机器,ip分别为10.10.0.34和10.10.0.35,在35上部署了四个节点,在34上部署了两个节点,当然你最好是每台上面各三个节点。

1 在34和35都建立目录/usr/local/redis-cluster,目录位置看个人喜好,在35的redis-cluster下建立7001-7004四个目录,在34的redis-cluster下建立7005和7006两个目录。

2 源码安装redis,我安装的版本是6.0.8

   make

   make install PREFIX=/usr/local/redis-cluster

   这一步如果你事先已经安装redis可以省略。

3 34和35上的防火墙添加端口例外,

    3.1 添加redis面向客户端的端口例外

   我在35上的4个实例面向客户端的监听端口是7001、7002、7003和7004,34上是7005和7006。

   我的系统是centos 7,通过firewalld进行配置。

   安装firewalld: 

          yum install firewalld firewall-config

   firewalld相关操作:

          systemctl enable firewalld

          systemctl start firewalld

           systemctl stop firewalld

          systemctl restart firewalld 

   按照下列命令添加7001-7006的端口例外:

   firewall-cmd --add-port=7001/tcp --permanent

  3.2 添加redis集群内部端口的例外,此端口默认为面向客户端的端口+10000,所以要添加17001-17006的端口例外。

   firewall-cmd --add-port=17001/tcp --permanent

4 拷贝redis源码src目录下的redis.conf到redis-cluster目录下的7001-7006目录里,然后分别编辑以下选项:

   daemonize yes                              #后台启动
   port 7001                                       #面向客户端的端口,从7001到7006
   cluster-enabled yes                       #开启cluster,去掉注释
   cluster-config-file nodes.conf        #自动生成,nodes.conf分别在各个子目录生成,名字随意
   cluster-node-timeout 15000 
   appendonly yes                             #增强的持久化方式

   同时注释掉bind 127.0.0.1

5 在35的redis-cluster目录下创建脚本 start-all.sh,然后chmod 777 start-all.sh,34同理,内容如下:

cd 7001
../bin/redis-server ./redis.conf
cd ..
cd 7002
../bin/redis-server ./redis.conf
cd ..
cd 7003
../bin/redis-server ./redis.conf
cd ..
cd 7004
../bin/redis-server ./redis.conf
cd ..

6 确认系统安装了ruby,并且保证ruby版本大于2.3(具体值我忘了,本来我yum install ruby 安装的是2.0.x,然后gem install redis提示我ruby 版本太低)

   最好通过rvm安装ruby,参考我另一篇文章:https://blog.csdn.net/wutaozhao/article/details/109227172

7 安装好ruby后,gem install redis

8 在34和35分别执行./start-all.sh

9 ps -aux | grep redis,确保各个节点都正常启动

10 通过redis-cli创建集群

./bin/redis-cli --cluster create 10.10.0.35:7001 10.10.0.35:7002 10.10.0.35:7003 10.10.0.35:7004 10.10.0.34:7005 10.10.0.34:7006 --cluster-replicas 1

11 碰到以下提示,输入yes即可

  

  如果你看到以下提示:All 16384 slots covered,说明集群创建成功。

注意:如果你一直卡在waiting for the cluster to join,很有可能是步骤3.2没有执行。

12 验证

引用官方的例子,如下:

$ redis-cli -c -p 7000
redis 127.0.0.1:7000> set foo bar
-> Redirected to slot [12182] located at 127.0.0.1:7002
OK
redis 127.0.0.1:7002> set hello world
-> Redirected to slot [866] located at 127.0.0.1:7000
OK
redis 127.0.0.1:7000> get foo
-> Redirected to slot [12182] located at 127.0.0.1:7002
"bar"
redis 127.0.0.1:7000> get hello
-> Redirected to slot [866] located at 127.0.0.1:7000
"world"

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值