资讯详情

Redis4 Cluster部署

点击上面的蓝字关注我

eb514d96dc4cfbcdf0a1a11e8e75b75b.png

Redis5版本前(redis3.x及redis4.x)cluster部署比较麻烦,因为部署过程中涉及的依赖软件版本要求比较苛刻,所以要记录下来redis4.0.14版本redis cluster部署过程。

每个节点都用源码安装,但与非cluster不同的方法是需要在配置文件中启动cluster相关配置。编译过程可参考几分钟Redis编译安装

由于这是伪分布式部署,建议在生产环境部署时至少部署3台机器(其中每台机器1主1从)

192.168.56.101 7000
192.168.56.101 7001
192.168.56.101 7002
192.168.56.101 7003
192.168.56.101 7004
192.168.56.101 7005

创建数据目录

mkdir -p  /data/redis/cluster7000,7001,7002,7003,7004,7005

配置文件主要修改以下内容,其他内容可根据需要进行调整,也可保持默认值意在每个节点中修改相应的端口号

bind 192.168.56.101 port 7000 daemonize yes pidfile /data/redis/cluster/7000/redis_7000.pid logfile "/data/redis/cluster/7000/redis_7000.log" appendonly yes appendfilename "appendonly.aof" appendfsync everysec cluster-enabled yes cluster-config-file nodes-7000.conf     #注意自动生成本文件,且初始化时不要有和此重名的文件 cluster-node-timeout 5000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes cluster-slave-no-failover no

建议启动每个节点redis用户启动

useradd redis chown -R  redis:redis  /data/redis/ su - redis cd /data/redis/cluster/7001 cp /data/redis/cluster/7000/redis.conf .  sed -i "s#7000#7001#g" redis.conf redis-server redis.conf

其他节点类似于7001启动,启动后会标记redis节点以cluster模式启动

因redis5之前版本前cluster安装依赖ruby,而且版本要求比较苛刻,本次安装的版本redis4.0.14,依赖的ruby版本为>=ruby2.4.因此,安装时可以安装高版本ruby,这次我用的是ruby2.7.5版本

下载ruby,建议从官网下载源码编译安装 https://www.ruby-lang.org/en/downloads/
tar -zxvf  ruby-2.7.5.tar.gz cd ruby-2.7.5  ./configure make   make install

安装后,检查ruby以及gem版本

安装完ruby后,使用gem安装redis这个时候,如果没有安装包,openssl 回报如下错误

gem install  redis ERROR:  Loading command: install (LoadError)     cannot load such file -- openssl ERROR:  While executing gem ... (NoMethodError)     undefined method `invoke_with_build_args' for nil:NilClass

过程如下:

yum方式先安装openssl

yum install openssl-devel -y

再进入ruby在源码目录中ext找到目录openssl进入后安装目录

cd ruby-2.7.5/ext/openssl ruby extconf.rb  make make install

zlib-devel包括报错,也可以同上方式处理。

在执行make,若出现以下错误:

make:***没有规则可以创建ossl_asn1.o目标/include/ruby.h”停止。

可以在Makefile增加顶部 top_srcdir = ../..

再次执行 make && make install

gem install redis

相关依赖安装完成后,即可初始化redis集群、命令和流程如下:

[redis@localhost redis-4.0.14]$ src/redis-trib.rb create --replicas 1 192.168.56.101:7000 192.168.56.101:7001 192.168.56.101:7002 192.168.56.101:7003 192.168.56.101:7004 192.168.56.101:7005
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.56.101:7000
192.168.56.101:7001
192.168.56.101:7002
Adding replica 192.168.56.101:7004 to 192.168.56.101:7000
Adding replica 192.168.56.101:7005 to 192.168.56.101:7001
Adding replica 192.168.56.101:7003 to 192.168.56.101:7002
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: cd6663924f0c31e6b60b815dca9cb7ea863f5573 192.168.56.101:7000
   slots:0-5460 (5461 slots) master
M: abc1f43c9a4e8813e9da15433ac66cd185dc39fe 192.168.56.101:7001
   slots:5461-10922 (5462 slots) master
M: 43fa53cec1ae164f784e5d439aaf80ee2f7e35af 192.168.56.101:7002
   slots:10923-16383 (5461 slots) master
S: 6ffcd16f1d445b0091c6239bc0988fb8a77fac96 192.168.56.101:7003
   replicates cd6663924f0c31e6b60b815dca9cb7ea863f5573
S: c523846d491f8df0bc97033b025b0d24375a13f8 192.168.56.101:7004
   replicates abc1f43c9a4e8813e9da15433ac66cd185dc39fe
S: 905dc9de7e074c282aab44b4ed5680a2020bcf4c 192.168.56.101:7005
   replicates 43fa53cec1ae164f784e5d439aaf80ee2f7e35af
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join....
>>> Performing Cluster Check (using node 192.168.56.101:7000)
M: cd6663924f0c31e6b60b815dca9cb7ea863f5573 192.168.56.101:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: 43fa53cec1ae164f784e5d439aaf80ee2f7e35af 192.168.56.101:7002
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: c523846d491f8df0bc97033b025b0d24375a13f8 192.168.56.101:7004
   slots: (0 slots) slave
   replicates abc1f43c9a4e8813e9da15433ac66cd185dc39fe
S: 6ffcd16f1d445b0091c6239bc0988fb8a77fac96 192.168.56.101:7003
   slots: (0 slots) slave
   replicates cd6663924f0c31e6b60b815dca9cb7ea863f5573
M: abc1f43c9a4e8813e9da15433ac66cd185dc39fe 192.168.56.101:7001
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 905dc9de7e074c282aab44b4ed5680a2020bcf4c 192.168.56.101:7005
   slots: (0 slots) slave
   replicates 43fa53cec1ae164f784e5d439aaf80ee2f7e35af
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

至此,redis集群初始化完毕,各节点slot范围及角色也打印出来了

往期精彩回顾

1.  MySQL高可用之MHA集群部署

2.  mysql8.0新增用户及加密规则修改的那些事

3.  比hive快10倍的大数据查询利器-- presto

4.  监控利器出鞘:Prometheus+Grafana监控MySQL、Redis数据库

5.  PostgreSQL主从复制--物理复制

6.  MySQL传统点位复制在线转为GTID模式复制

7.  MySQL敏感数据加密及解密

8.  MySQL数据备份及还原(一)

9.  MySQL数据备份及还原(二)

扫码关注     

标签: 低浓度甲烷传感器gjc4

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台