Redis集群的部署
Redis集群分为主节点Master和从节点Slave,主节点只有1个,而从节点可以有多个,这样从节点和主节点可以进行数据的传输,Redis集群的性能将比单机环境更高,接下来是配置的过程
首先配置Master节点,主节点的配置和之前Redis单机配置完全一样,并不需要额外的其他任何配置
然后配置Slave节点,这里使用一台主节点,一台从节点做演示,Slave节点释放安装过程完全一样,redis.conf配置首先保证和之前的配置参数一样,即daemonize要设置为yes、logfile日志位置正确设置,dir数据目录正确设置,然后在这个基础上继续添加下面的配置:
找到slave-read-only这一项,默认是yes,这里不用修改,是指Slave只能从Master上读数据

然后再找到# slaveof <masterip> <masterport>这个位置,根据提示这里是设置master的ip地址和端口号,slave就是根据这个设置去和master通信的,所以去掉注释设置为:slaveof 192.168.1.14 6379

补充完这些设置,保存并退出redis.conf即可,然后分别手动建立数据目录和日志目录
这时候执行命令 redis-server redis.conf 就可以启动slave的redis服务了,然后使用 redis-cli 就可以进入redis客户端了
然后我们输入: keys * 查看所有存在的key,默认情况下因为我们没有添加任何数据,所以应该返回空,但是之前在主节点我们添加过数据,所以在集群环境下会从master读取数据,这里返回并不是空:

到这里最简单的redis集群就算部署完成了,接下来补充一下安装Sentinel这个工具来监控redis集群,Sentinel就是redis自带的一个组件,我们可以在另外一台服务器上重新安装redis和Sentinel监控节点,这里为了简单就直接使用上面这一个Slave节点继续补充安装Sentinel
在Redis释放安装的目录下,这里是/usr/redis/redis-3.0.7,这下面除了redis.conf之外,还有一个sentinel.conf就是用来配置Sentinel的,执行 vim sentinel.conf 编辑配置文件
首先在某一位置添加配置:daemonize yes,这个配置是默认没有的,仍然表示Sentinel服务后台运行

然后找到sentinel monitor mymaster 127.0.0.1 6379 2这样的一个默认配置,其中mymater是服务名称127.0.0.1要改成master节点IP,我这里就是:sentinel monitor mymaster 192.168.1.14 6379 1 注意最后的2要改成1,这个表示哨兵的队列,如果多个哨兵,那么可以依次往后排,这里是单哨兵,所以必须改为1,否则故障无法转移;默认sentinel不打印日志,所以建议设置一下日志目录,方面观察集群的变动情况,设置比如:logfile "/usr/redis/sentinel.log" 指定一个日志文件位置即可,具体如下图所示:

配置这些,保存并退出sentinel.conf
然后使用命令 redis-sentinel sentinel.conf 启动Sentinel服务,
然后测试服务是否正常,执行命令 redis-cli -h localhost -p 进入监控管理,26379就是Sentinel服务的端口号,在配置文件可以看到

进入管理界面之后,执行: sentinel master mymaster 可以查看master的信息

执行 sentinel slaves mymaster 可以查看slave的信息

到这里,监控服务Sentinel也部署完毕了,生产中可以专门有一台机器用于运行Sentinel和其他redis节点分开
另外可以扩展上面的sentinel配置至多个,来管理多个redis的集群或者主从,只是服务名不再是mymaster而是多个,比如master1,master2....等,非常简单
现在可以简单验证故障转移是否好用,在主节点执行 redis-cli -p shutdown 停止master节点
这时候查看sentinel.log日志可以看到主节点从14转移到15,可以通过上面的命令查看或者在sentinel节点使用命令: redis-cli -p info Sentinel 查看管理信息,这时候就会看到主节点变为15,状态仍然是良好,现在如果再次启动14上面的redis,那么会被sentinel重新加入到管理,只是此时变为从节点了
到这里redis集群故障转移是好用的,下面是常用到的一些命令:
查看本机redis节点的信息: redis-cli -p info Replication 如果端口默认,那么可以省略-p参数,作用和上面sentinel看到的类似
查看远程redis节点信息,比如从主节点查看从节点信息: redis-cli -h info Replication # -h后跟远程ip地址
停止远程主机redis服务: redis-cli -p -h 192.168.1.22 shutdown
连接远程客户端redis命令行: redis-cli -p -h 192.168.1.22 默认端口时-p同样可以省略
Redis集群的部署的更多相关文章
- redis集群安装部署
(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 192.168.1.160:7000 192. ...
- Redis集群模式部署
以下以Linux(CentOS)系统为例 1.1 下载和编译 $ wget http://download.redis.io/releases/redis-4.0.7.tar.gz $ tar xzf ...
- Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)
一.应用场景介绍 本文主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联网的Linux环境和脱机的Linux环境下是如何安装的.因为大多数时候,公司的生产环境是在内网环境下,无外网 ...
- keepalived+nginx+tomcat+redis集群环境部署
1.所需软件.jar包.配置文件下载:http://pan.baidu.com/s/1dFgntst 2.环境说明: centos6.5 64位 主节点:192.168.40.121 副节点:192 ...
- 使用Docker构建redis集群--最靠谱的版本
1集群结构说明 集群中有三个主节点,三个从节点,一共六个结点.因此要构建六个redis的docker容器.在宿主机中将这六个独立的redis结点关联成一个redis集群.需要用到官方提供的ruby脚本 ...
- Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
- Bash实践:抽样检测数据迁移至Redis集群后的数据一致性
熟悉了一段时间的Bash编程,因此借此任务操作一把bash编程,主要涉及到Redis单节点与Redis集群的操作 1. 任务背景 近日有个任务需要将历史的Redis(主从节点)中的数据迁移至Redis ...
- Redis集群的离线安装以及原理理解
一.本文主要是记录一下Redis集群在linux系统下离线的安装步骤,毕竟在生产环境下一般都是无法联网的,Redis的集群的Ruby环境安装过程还是很麻烦的,涉及到很多的依赖的安装,所以写了一个文章来 ...
- Redis集群方案(来自网络)
参考: https://www.zhihu.com/question/21419897 http://www.cnblogs.com/haoxinyue/p/redis.html 为什么集群? 通常, ...
随机推荐
- RPC-远程过程调用协议
远程过程调用协议 同义词 RPC一般指远程过程调用协议 RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要 ...
- 【9-2】mysql数据库学习01
mysql安装 下载社区版本MySQL软件包(地址),或者windows installer 接压缩安装包到目标路径 在系统变量Path中加入目标路径 在mysql安装路径下,修改配置文件mysql- ...
- 完全迁移到red hat来的相关问题解决和配置
默认从光盘iso镜像安装iso-1 时, yum.repos.d只有 packagekit-media.repo, 要从网上下载一个 CentOS-Base.repo文件放到这里. redhat上下载 ...
- vim ctags使用方法
一.用好系统自带软件ctags 大部分的unix系统都有ctags软件,它能跟vim很好地合作. 用途: 生成c语言的标签文件,实现相关c文件之间的跳转. 用法: 1.生成标签文件 ...
- Hadoop伪分布式搭建(一)
下面内容主要说明在Windows虚拟机上面,怎么搭建一个Hadoop伪分布式,并如何运行wordcount程序和网页查看HDFS文件系统. 1 相关软件下载和安装 APACH官网提供hadoop版本 ...
- [译]ES6箭头函数和它的作用域
原文来自我的前端博客: http://www.hacke2.cn/arrow-functions-and-their-scope/ 在ES6很多很棒的新特性中, 箭头函数 (或者大箭头函数)就是其中值 ...
- java练手 韩信点兵
Problem C 韩信点兵 时间限制:3000 ms | 内存限制:65535 KB 描述 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排.五人一排.七人一排地变换队 ...
- java依赖注入
接口的作用 1.在spide中创建一个私有接口 private Downloadable downlaodable 覆盖set get 方法 创建一个方法 Public Page down load ...
- Windbg学习使用
WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件. 1. WinDbg介绍: Debuggin ...
- phpcms万能字段如何使用php方法
来自:http://www.tantengvip.com/2013/12/phpcms-php-function/ phpcms后台内容模块->模型管理->添加字段功能很强大,你只需在ph ...