Redis_13_之redis cluster集群环境搭建

290 阅读3分钟

Redis之redis cluster集群环境搭建

1. redis cluster的重要配置

cluster-enabled <yes/no>

cluster-config-file <filename>:这是指定一个文件,供cluster模式下的redis实例将集群状态保存在那里,包括集群中其他机器的信息,比如节点的上线和下线,故障转移,不是我们去维护的,给它指定一个文件,让redis自己去维护的

cluster-node-timeout <milliseconds>:节点存活超时时长,超过一定时长,认为节点宕机,master宕机的话就会触发主备切换,slave宕机就不会提供服务

2. 环境搭建

/etc/redis(存放redis的配置文件) /var/redis/6379(存放redis的持久化文件)

2.1 编写配置文件

redis cluster集群,要求至少3个master,去组成一个高可用,健壮的分布式的集群,每个master都建议至少给一个slave,3个master,3个slave,最少的要求

正式环境下,建议在6台机器上去搭建,至少3台机器

保证,每个master都跟自己的slave不在同一台机器上,如果是6台自然更好

本示例采用3台机器去搭建6个redis实例的redis cluster

mkdir -p /etc/redis-cluster
mkdir -p /var/log/redis

修改redis解压缩文件中的模板文件redis.conf 简约配置如下:

port 7001
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7001.conf
cluster-node-timeout 15000
daemonize	yes							
pidfile		/var/run/redis_7001.pid 						
dir 		/var/redis/7001		
logfile /var/log/redis/7001.log
bind 192.168.75.143		
appendonly yes

将该内容写入/etc/redis/7001.conf文件内,如此类推,==注意端口号和IP== 至少要用3个master节点启动,每个master加一个slave节点,先选择6个节点,启动6个实例

第一台机器/etc/redis目录下放7001.conf7002.conf 创建文件夹mkdir -p /var/redis/7001mkdir -p /var/redis/7002

第二台机器/etc/redis目录下放7003.conf7004.conf 创建文件夹mkdir -p /var/redis/7003mkdir -p /var/redis/7004

第三台机器/etc/redis目录下放7005.conf7006.conf 创建文件夹mkdir -p /var/redis/7005mkdir -p /var/redis/7006

2.2 准备生产环境的启动脚本

==redis_7001==启动脚本示例:

cd /etc/init.d
cp redis_6379 redis_7001
vi redis_7001

修改REDISPORT=7001

在这里插入图片描述
其余启动脚本以此类推。。。

第一台机器的/etc/init.d目录下启动脚本有redis_7001redis_7002 第二台机器的/etc/init.d目录下启动脚本有redis_7003redis_7004 第三台机器的/etc/init.d目录下启动脚本有redis_7005redis_7006

2.3 分别在3台机器上,启动6个redis实例

如果启动失败,将每个配置文件中的slaveof给删除

2.4 创建集群

yum install -y ruby
yum install -y rubygems
gem install redis

如果报错说ruby版本过低,==redis requires Ruby version >= 2.2.2== 使用如下命令安装

yum install -y  centos-release-scl-rh
yum install -y rh-ruby23
scl  enable  rh-ruby23 bash
gem install redis

更多解决方案

拷贝redis解压文件目录下src/redis-trib.rb 文件 到/usr/local/bin目录下 创建集群命令方式一 (已过时)

redis-trib.rb create --replicas 1 192.168.75.143:7001 192.168.75.143:7002 192.168.75.144:7003 192.168.75.144:7004 192.168.75.145:7005 192.168.75.145:7006

在这里插入图片描述
提示以上命令过时,==推荐使用==以下命令代替

redis-cli --cluster create 192.168.75.143:7001 192.168.75.143:7002 192.168.75.144:7003 192.168.75.144:7004 192.168.75.145:7005 192.168.75.145:7006 --cluster-replicas 1

执行效果

在这里插入图片描述
检查命令

  • 命令方式一 (已过时)
redis-trib.rb check 192.168.75.143:7001

在这里插入图片描述

  • 命令方式二(==推荐==)
redis-cli --cluster check 192.168.75.143:7001

在这里插入图片描述


附:

读写分离:每个master都至少有一个slave 高可用:master宕机,slave自动被切换过去 多master:横向扩容支持更大数据量


Mr.superbeyone