Redis 5.0.3集群部署
参考文章
https://blog.csdn.net/yyTomson/article/details/85783753
https://www.cnblogs.com/zy-303/p/10273167.html
1,环境两台centos7主机IP地址为:172.16.103.12和172.16.103.13
2,上传软件包到/root/software下,编译安装两台主机上的redis软件。
cd root/software/
tar -zxvf redis-5.0.3.tar.gz
安装编译依赖的gcc包
yum -y install gcc
编译安装
cd redis-5.0.3
make && make install
3,将 redis-trib.rb 复制到 /usr/local/bin 目录下
cd src/
cp redis-trib.rb /usr/local/bin/
4,在两个节点上都创建redis_cluster目录,并且在该目录下创建7000,7001,7002目录
mkdir -p /redis_cluster
cd /redis_cluster/
mkdir 7000 7001 7002
5,拷贝redis.conf文件到两个节点上的7000,7001,7002目录下
cp /root/software/redis-5.0.3/redis.conf /redis_cluster/7000
cp /root/software/redis-5.0.3/redis.conf /redis_cluster/7001
cp /root/software/redis-5.0.3/redis.conf /redis_cluster/7002
6,编辑7000/1/2目录下的redis.conf配置文件,主要修改一下几项
port 7000 //端口7000,7002,7003
bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes //redis后台运行
pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7001,7002
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
#requirepass password123 //该项是设置密码,也可以设置,也可以不设置,此处不设置密码,查阅官方文档,未找到设置密码之后创建集群的命令格式
以上操作均在两个节点都执行和修改
7,启动各节点上的redis服务
172.16.103.12上执行
redis-server /redis_cluster/7000/redis.conf
redis-server /redis_cluster/7001/redis.conf
redis-server /redis_cluster/7002/redis.conf
172.16.103.13上执行
redis-server /redis_cluster/7000/redis.conf
redis-server /redis_cluster/7001/redis.conf
redis-server /redis_cluster/7002/redis.conf
8,可以使用netstat 命令检查redis的开启情况,使用的端口是7000,7001和7002,下面创建集群
在172.16.103.12上执行
redis-cli --cluster create --cluster-replicas 1 172.16.103.12:7000 172.16.103.12:7001 172.16.103.12:7002 172.16.103.13:7000 172.16.103.13:7001 172.16.103.13:7002

集群创建成功
8,登陆验证
登陆创建一个键值

登陆其他节点,get键值

9,集群的关闭,以及集群的自动启动
关闭集群的脚本,需要在两个节点都执行
#脚本开始
#!/bin/bash
redis-cli -h 172.16.103.12 -p 7000 shutdown
redis-cli -h 172.16.103.12 -p 7001 shutdown
redis-cli -h 172.16.103.12 -p 7002 shutdown
#脚本结束
#脚本开始
#!/bin/bash
redis-cli -h 172.16.103.13 -p 7000 shutdown
redis-cli -h 172.16.103.13 -p 7001 shutdown
redis-cli -h 172.16.103.13 -p 7002 shutdown
#脚本结束
开机启动的脚本
#脚本开始
#!/bin/bash
redis-server /redis_cluster/7000/redis.conf &> /dev/null
redis-server /redis_cluster/7001/redis.conf &> /dev/null
redis-server /redis_cluster/7002/redis.conf &> /dev/null
if [ $? -eq 0 ]
then
redis-cli --cluster create --cluster-replicas 1 172.16.103.12:7000 172.16.103.12:7001 172.16.103.12:7002 172.16.103.13:7000 172.16.103.13:7001 172.16.103.13:7002 &> /root/software/redis-cluster-start.log
else
echo "Redis Services Started Succeed! Please Check Node!"
fi
cat /root/software/redis-cluster-start.log | grep "All 16384 slots covered"
if [ $? -eq 0 ]
then
echo "Redis Cluster Started Succeed!"
else
echo "Redis Cluster Started Failed! Please check /root/software/redis-cluster-start.log"
fi
#脚本结束
这个启动脚本运行过程中需要用户输入yes,这个用户输入的功能不知道怎么添加到脚本中。请大神指点。
10,相关报错:

如图所示报错:[ERR] Node 172.16.103.12:7000 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
解决该报错的方法为停止所有节点的redis服务,使用命令为;
redis-cli -h 172.16.103.13 -p 7000 shutdown //Ip地址端口根据实际修改
删除所有节点上的/root/software(redis软件包所在的位置)下的nodes_*.conf文件和dump.rdb和appendonly.aof文件,删除所有节点上/redis_cluster(创建的集群目录)中的nodes_*.conf文件和dump.rdb和appendonly.aof文件,然后再重新创建集群,初步接触redis,不确定删除以上文件是否会造成数据丢失,但是redis本身作为缓存数据库,即为缓存,应该多数都不重要吧。
Redis 5.0.3集群部署的更多相关文章
- redis 3.0的集群部署
转载请注明出处:http://hot66hot.iteye.com/admin/blogs/2050676 最近研究redis-cluster,正好搭建了一个环境,遇到了很多坑,系统的总结下,等到re ...
- (转)redis 3.0的集群部署
一:关于redis cluster 1:redis cluster的现状 reids-cluster计划在redis3.0中推出,可以看作者antirez的声明:http://antirez.com/ ...
- Redis 中常见的集群部署方案
Redis 的高可用集群 前言 几种常用的集群方案 主从集群模式 全量同步 增量同步 哨兵机制 什么是哨兵机制 如何保证选主的准确性 如何选主 选举主节点的规则 哨兵进行主节点切换 切片集群 Redi ...
- Redis 3.0 Cluster集群配置
Redis 3.0 Cluster集群配置 安装环境依赖 安装gcc:yum install gcc 安装zlib:yum install zib 安装ruby:yum install ruby 安装 ...
- Redis 5.0.5集群搭建
Redis 5.0.5集群搭建 一.概述 Redis3.0版本之后支持Cluster. 1.1.redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2):s ...
- hbase-2.0.4集群部署
hbase-2.0.4集群部署 1. 集群节点规划: rzx1 HMaster,HRegionServer rzx2 HRegionServer rzx3 HRegionServer 前提:搭建好ha ...
- 配置redis 4.0.11 集群
配置redis 4.0.11 集群 准备redis 软件和redis配置文件 启动Redis服务 /data/soft/redis/src/redis-check-aof --fix /log/red ...
- redis3.0.5集群部署安装详细步骤
Redis集群部署文档(centos6系统) (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) ...
- 1--redis3.0.5集群部署安装详细步骤
Redis集群部署文档(centos6系统) (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) ...
随机推荐
- tcl实现批量压缩文件夹
tcl脚本本身对字符串的处理比较简单,所以想着用这个也实现下: proc main {} { puts "请输入路径:" set strpath "E:\\123&quo ...
- ajax如何渲染数据
染数据的方法 1).字符串拼接, 最常用的方法 优点:只进行一次dom回流 缺点:原有dom的事件都会丢失 原因:就在于innerHTML这个属性,这个属性是返回或设置dom中的内容,以字符串形式返 ...
- Sonar Java 规则插件开发 (基于阿里开发手册)
引言 最近在做Sonar静态代码扫描管理,以此顺手接了Sonar的插件开发,基于阿里开发手册进行开发,在整体开发过程中,其中还是遇到不少坑位,也以此给大家做相应借鉴官网Demo演示插件开发地址:htt ...
- Spring 基于构造函数的依赖注入
基于构造函数依赖注入 sprig通过bean创建对象时,会通过bean提供的参数来选择调用某个构造函数.上例中, <constructor-arg ref="spellChecker& ...
- arcgis 添加经纬度坐标点
ArcGIS 10.2导入X.Y坐标(经度.纬度),生成Shapefile点数据 参考博客很完整 基站-纬度-经度 1---- 2----X 经度 Y 纬度 Z高程(没有) 3---一开始只定 ...
- TFS2015安装、配置
一.安装,参考:http://www.cnblogs.com/WilsonWu/archive/2011/11/24/2261674.html 二.配置,参考:http://www.cnblogs.c ...
- ionic3/4 使用NavController 返回两层的方式
ionic3/4 使用NavController 返回两层的方式: this.navCtrl.popTo(this.navCtrl.length() - 3);
- bbs项目学习到的知识点(orm中的extra)
注册 form组件给input 的标签 添加样式类 参见这篇博客(点击) 上传图像 1.解决 一点击图像就会直接打开上传文件的按钮 #这儿利用了 label标签和input的特殊的联动功能 < ...
- 【等价转换】—— min/max 的转换与互相转换
0. min 与 max 的转换 {max(X,Y)=X+Y−min(X,Y)min(X,Y)=X+Y−max(X,Y)min(X,Y)+max(X,Y)=X+Y" role="p ...
- 2017年java面试题【集合篇】
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. 这里有10个经典的Java面试题,也为大 ...