文章目录
- Redis之redis cluster集群环境搭建
- 1. redis cluster的重要配置
- 2. 环境搭建
- 2.1 编写配置文件
- 2.2 准备生产环境的启动脚本
- 2.3 分别在3台机器上,启动6个redis实例
- 2.4 创建集群
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.conf
和7002.conf
创建文件夹mkdir -p /var/redis/7001
和 mkdir -p /var/redis/7002
第二台机器/etc/redis
目录下放7003.conf
和7004.conf
创建文件夹mkdir -p /var/redis/7003
和 mkdir -p /var/redis/7004
第三台机器/etc/redis
目录下放7005.conf
和7006.conf
创建文件夹mkdir -p /var/redis/7005
和 mkdir -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_7001
和redis_7002
第二台机器的/etc/init.d
目录下启动脚本有redis_7003
和redis_7004
第三台机器的/etc/init.d
目录下启动脚本有redis_7005
和redis_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:横向扩容支持更大数据量