redis-cluster集群搭建
来源:互联网 发布:aix db2创建数据库实例 编辑:程序博客网 时间:2024/04/28 18:41
本人最近在搭建一套主从复制+高可用+多master的redis cluster集群,搭建环境是CentOS7,redis版本3.2.8。
提醒:一定要养成拍摄快照的习惯!
1、补充redis-trib.rb文件基本知识
redis-rib.rb是redis的集群管理工具,集成在redis的src目录下,是redis作者使用ruby脚本语言编写的,此工具提供了一下功能:
1、create:创建集群
2、check:检查集群
3、info:查看集群信息
4、fix:修复集群
5、reshard:在线迁移slot
6、rebalance:平衡集群节点slot数量
7、add-node:将新节点加入集群
8、del-node:从集群中删除节点
9、set-timeout:设置集群节点间心跳连接的超时时间
10、call:在集群全部节点上执行命令
11、import:将外部redis数据导入集群
2、搭建redis集群
我使用了三台虚拟机,每台两个节点,创建3个master、3个slave环境。
下载
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
解压
tar -zxf redis-3.2.8.tar.gz
安装gcc环境
yum install gcc
编译
cd redis-3.2.8make && make install
修改配置文件
将redis-conf文件复制到/etc/redis/目录下,文件名改为7001.conf,然后修改如下配置:
#自己定义的端口号port 7001#使该实例支持集群cluster-enabled yes#集群配置文件,不能人工编译,属于集群节点自动维护的文件,主要用于记录集群中有哪些节点、他们的状态以及一些持久化参数等cluster-config-file /etc/redis/redis-cluster/nodes-7001.conf#集群中节点能够失联的最长时间,如果超时会启动故障迁移cluster-node-timeout 15000#开启守护进程,可以后台运行daemonize yes#后台运行时会指定一个pid写入此文件pidfile /var/run/redis_7001.pid #持久化文件存放路径dir /var/redis/7001#log文件存放路径logfile /var/log/redis/7001.log#绑定本机器的ipbind 192.168.8.133#开启aof持久化appendonly yes
配置完成后穿件相关的目录,每个redis实例配置文件只需替换7001,不同机器绑定各自的ip
将redis安装为服务
vim /lib/systemd/system/redis-7001.service
[Unit] Description=redis service Wants=network.target [Service] Type=forking ExecStart=/usr/local/bin/redis-server /etc/redis/7001.conf [Install] WantedBy=multi-user.target
重新载入
systemctl daemon-reload
设置开机启动
systemctl enable redis-7001
启动redis
systemctl start redis-7001
关闭防火墙,你也可以开放相应端口
#关闭systemctl stop firwalld#开机不会重启systemctl disable firwalld
这是成功安装一个redis实例,后面的安装与之类似。将所有redis实例安装完成并启动成功后,开始进行下一步。
安装ruby
yum install rubyyum install rubygemsyum install redis
可能会报此错误:
ERROR: Could not find a valid gem 'redis' (>= 0), here is why: Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=error: certificate verify failed (https://rubygems.org/latest_specs.4.8.gz)
解决方案:
wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.2.gem gem install redis
出现如下结果说明成功:
Successfully installed redis-3.3.0Parsing documentation for redis-3.3.0Installing ri documentation for redis-3.3.01 gem installed
将redis-trib.rb复制到/usr/local/bin目录下
cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin/
最重要一步:创建集群
redis-trib.rb create --replicas 1 192.168.8.132:7007 192.168.8.132:7008 192.168.8.129:7003 192.168.8.129:7004 192.168.8.133:7005 192.168.8.133:7006#replicas 1 代表每个master有一个slave
出现如下结果说明安装成功:
可能会出现的错误及解决方案
1、Sorry, can’t connect to node
确认一下此端口节点是否开启,端口是否开放,并确认配置文件bind绑定的是否是本机ip
2、Waiting for the cluster to join…一直停不下来:
原因一:确认一下所有节点是否启动,每个机器是否集群总线端口,
原因二:确认每个配置文件bind绑定的是本机ip,如果绑定回环ip可能会出现此结果;
原因三:如果以上都排除还是无法成功,那么可能是redis版本有问题,我开始时redis版本使用的是3.2.4一直出现这个问题,需要重新安装别的版本;
3、[ERR] Node 172.168.63.202:7001 is not empty. Either the nodealready knows other nodes (check with CLUSTER NODES) or contains somekey in database 0
可能是之前有安装过redis集群,此时需要将集群配置文件和本地的持久化文件删除,然后重启redis。
- redis cluster集群搭建
- redis-cluster 集群搭建
- redis cluster集群搭建
- redis-cluster集群搭建
- redis cluster 集群搭建
- 搭建Redis-Cluster集群
- redis-cluster集群搭建
- redis cluster集群搭建
- redis-cluster集群搭建
- linux +redis cluster 集群搭建
- Redis集群搭建之Redis Cluster实践
- Redis 3.0 cluster 集群环境搭建
- Redis Cluster集群的搭建与实践
- Redis3.0 Cluster Redis集群搭建
- Redis Cluster集群的搭建与实践
- redis 学习笔记(6)-cluster集群搭建
- Redis集群环境搭建-cluster模式
- redis配置与cluster集群的搭建
- Kotlin之Elvis 操作符
- tomcat源码解读四 tomcat中的processer
- Spring Boot 静态资源处理
- 进程分析
- mybatis的工作原理
- redis-cluster集群搭建
- Linux运维学习笔记之九:网络管理和磁盘管理
- 【Mybatis】通过自动回复机器人学Mybatis---基础版(5-6结束)
- Spring Boot 启动加载数据 CommandLineRunner
- 魏则西事件与百度医疗竞价排名引发的伦理与道德问题
- 《python系列文章之二:hello world》
- 电脑的发展史和趣闻,伟大的乔布斯和比尔盖茨
- TCP 、UDP、IP包的最大长度是多少
- 认识const 和assert