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集群的部署的更多相关文章

  1. redis集群安装部署

    (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 192.168.1.160:7000 192. ...

  2. Redis集群模式部署

    以下以Linux(CentOS)系统为例 1.1 下载和编译 $ wget http://download.redis.io/releases/redis-4.0.7.tar.gz $ tar xzf ...

  3. Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)

    一.应用场景介绍 本文主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联网的Linux环境和脱机的Linux环境下是如何安装的.因为大多数时候,公司的生产环境是在内网环境下,无外网 ...

  4. keepalived+nginx+tomcat+redis集群环境部署

    1.所需软件.jar包.配置文件下载:http://pan.baidu.com/s/1dFgntst 2.环境说明: centos6.5  64位 主节点:192.168.40.121 副节点:192 ...

  5. 使用Docker构建redis集群--最靠谱的版本

    1集群结构说明 集群中有三个主节点,三个从节点,一共六个结点.因此要构建六个redis的docker容器.在宿主机中将这六个独立的redis结点关联成一个redis集群.需要用到官方提供的ruby脚本 ...

  6. Redis 集群搭建详细指南

    先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...

  7. Bash实践:抽样检测数据迁移至Redis集群后的数据一致性

    熟悉了一段时间的Bash编程,因此借此任务操作一把bash编程,主要涉及到Redis单节点与Redis集群的操作 1. 任务背景 近日有个任务需要将历史的Redis(主从节点)中的数据迁移至Redis ...

  8. Redis集群的离线安装以及原理理解

    一.本文主要是记录一下Redis集群在linux系统下离线的安装步骤,毕竟在生产环境下一般都是无法联网的,Redis的集群的Ruby环境安装过程还是很麻烦的,涉及到很多的依赖的安装,所以写了一个文章来 ...

  9. Redis集群方案(来自网络)

    参考: https://www.zhihu.com/question/21419897 http://www.cnblogs.com/haoxinyue/p/redis.html 为什么集群? 通常, ...

随机推荐

  1. js使用split函数按照多个字符对字符串进行分割的方法

    这篇文章主要介绍了js使用split函数按照多个字符对字符串进行分割的方法,实例分析了split函数的使用技巧,非常具有实用价值,需要的朋友可以参考下   本文实例讲述了js使用split函数按照多个 ...

  2. ASP.NET中最保险最环保的返回404的方法

    代码如下: Response.StatusCode = 404; Response.SuppressContent = true; Context.ApplicationInstance.Comple ...

  3. Netbeans 设置模板

    /** * @Description * @author ${user} * @date ${date} ${time} * @copyright ${copyright} */ 工具-->模板 ...

  4. PHP支付宝接口RSA验证

    这两天一直困扰的PHP RSA签名验证问题终于解决了,由于之前RSA接触的不多,再加上官方至今还未有PHP的SDK可供参考,因此走了一些弯路,写在这里和大家分享.    虽然支付宝官方还未提供相关SD ...

  5. vue-cli + webpack 多页面实例应用

    关于vue.js vue.js是一套构建用户界面的 轻型的渐进式前端框架.它的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.使用vue可以给你的开发带来极致的编程体验. 关于vu ...

  6. 2015年11月26日 Java基础系列(一)之String与StringBuffer与StringBuilder的区别

    序,StringBuffer是线程安全的,StringBuilder是线程不安全的,但是StringBuilder操作速度快,因此在使用时要根据场景合理选择. StringBuffer和StringB ...

  7. [译]git rebase

    rebase就是重新定义你分支的起点, 分支上的commit将生成对应的新的commit并放在你指定的新的起点commit后, 分支上的老commit将被删除. rebase就是将你的分支从一个com ...

  8. 清北暑假模拟day1 艳阳天

    /* 注意P有可能不是质数,不要用欧拉函数那一套,正解可以倍增,就是等比数列和的性质,注意n是否为奇数 */ #include <cstdio> #include <algorith ...

  9. PHP基础 之 数组(一)

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  10. redhat 下 rpm 指令

    1.如何安装rpm软件包rmp软件包的安装可以使用程序rpm来完成.执行下面的命令 rpm -i your-package.rpm 其中your-package.rpm是你要安装的rpm包的文件名,一 ...