准备环境

操作系统:CentOS6.5

 Redis3.0.0

192.168.3.154

192.168.3.158

192.168.3.160

192.168.3.162





一、安装





安装文件夹 /usr/local/redis





创建安装文件夹 

mkdir -p /usr/local/redis





解压安装包

[root@localhost src]# tar -zxvf redis-3.0.0.tar.gz





进入文件夹

[root@localhost src]# cd redis-3.0.0





编译安装到指定文件夹

make PREFIX=/usr/local/redis install





成功安装后会在/usr/local/redis/bin文件夹下生成一下文件

redis-benchmark

redis-check-aof

redis-check-dump

redis-cli

redis-sentinel -> redis-server

redis-server









二、配置主从





从库配置文件里加上

slaveof masterip port





依次启动主库、从库





假设从库报错

35478:S 28 May 21:01:18.648 # Error condition on socket for SYNC: No route to host

是因为防火墙没有关闭

解决方式:开通6379port,或者关闭防火墙

三、添加password验证

主库配置文件添加參数

requirepass "password"

添加password验证后再次登录redisclient运行命令须要加上password

如:

[root@bj01-share-redis003 ~]# /usr/local/redis/bin/redis-cli -p 6382 -a sldUancjdPyu info

主库加入password验证后,从库须要配置例如以下參数:

requirepass "password"

masterauth "password"

注意:从库须要配置本身的password验证。还须要配置连接到主库的password验证masterauth

四、redis 高可用集群

3.0版本号已经将哨兵集成到redis安装包里。安装好redis之后能够看到该文件 redis-sentinel

配置sentinel

[root@localhost redis]# more sentinel.conf 

# Example sentinel.conf

port 26379

daemonize yes





dir "/data/redis"

logfile "/data/redis/sentinel.log"





sentinel monitor mymaster 192.168.3.154 6379 2  #sentinel监控的master的名字叫做mymaster,地址为192.168.3.154:port:6379;当集群中有2个sentinel觉得master死了时。才干真正觉得该master已经不可用了

sentinel down-after-milliseconds mymaster 5000  #sentinel会向master发送心跳PING来确认master是否存活,当master 5秒内不回应pong或者回复一个错误消息时。该sentinel主管地觉得这个master不可用,标记这个redis的实例为SDOWN 。注意:此时sentinel并不会立即进行failover主备切换

sentinel failover-timeout mymaster 90000  #故障切换超时时间。单位:毫秒,默认3分钟.

#启动sentinel

方法1:/usr/local/redis/bin/redis-sentinel /data/redis/sentinel.conf

方法2:/usr/local/redis/bin/redis-server /data/redis/sentinel.conf --sentinel

#查看sentinel日志

[root@localhost redis]# more sentinel.log 

26542:X 28 May 21:08:34.757 * Increased maximum number of open files to 10032 (it was originally set to 1024).

                _._                                                  

           _.-``__ ''-._                                             

      _.-``    `.  `_.  ''-._           Redis 3.0.0 (00000000/0) 64 bit

  .-`` .-```.  ```\/    _.,_ ''-._                                   

 (    '      ,       .-`  | `,    )     Running in sentinel mode

 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379

 |    `-._   `._    /     _.-'    |     PID: 26542

  `-._    `-._  `-./  _.-'    _.-'                                   

 |`-._`-._    `-.__.-'    _.-'_.-'|                                  

 |    `-._`-._        _.-'_.-'    |           http://redis.io        

  `-._    `-._`-.__.-'_.-'    _.-'                                   

 |`-._`-._    `-.__.-'    _.-'_.-'|                                  

 |    `-._`-._        _.-'_.-'    |                                  

  `-._    `-._`-.__.-'_.-'    _.-'                                   

      `-._    `-.__.-'    _.-'                                       

          `-._        _.-'                                           

              `-.__.-'                                               





26542:X 28 May 21:08:34.760 # Sentinel runid is 18176251f94fe87bf0055e2a6b47823911c2d6ea

26542:X 28 May 21:08:34.760 # +monitor master mymaster 192.168.3.154 6379 quorum 1

26542:X 28 May 21:08:35.766 * +slave slave 192.168.3.158:6379 192.168.3.158 6379 @ mymaster 192.168.3.154 6379

26542:X 28 May 21:08:40.809 # +sdown slave 192.168.3.158:6379 192.168.3.158 6379 @ mymaster 192.168.3.154 6379





说明:主从库已经增加监控









#阅读sentinel日志



+reset-master <instance details> :主server已被重置。

+slave <instance details> :一个新的从server已经被 Sentinel 识别并关联。

+failover-state-reconf-slaves <instance details> :故障转移状态切换到了 reconf-slaves 状态。

+failover-detected <instance details> :还有一个 Sentinel 開始了一次故障转移操作,或者一个从server转换成了主server。

+slave-reconf-sent <instance details> :领头(leader)的 Sentinel 向实例发送了 SLAVEOF 命令,为实例设置新的主server。

+slave-reconf-inprog <instance details> :实例正在将自己设置为指定主server的从server,但对应的同步过程仍未完毕。

+slave-reconf-done <instance details> :从server已经成功完毕对新主server的同步。

-dup-sentinel <instance details> :对给定主server进行监视的一个或多个 Sentinel 已经由于反复出现而被移除 —— 当 Sentinel 实例重新启动的时候,就会出现这样的情况。

+sentinel <instance details> :一个监视给定主server的新 Sentinel 已经被识别并加入。

+sdown <instance details> :给定的实比如今处于主观下线状态。

-sdown <instance details> :给定的实例已经不再处于主观下线状态。

+odown <instance details> :给定的实比如今处于客观下线状态。

-odown <instance details> :给定的实例已经不再处于客观下线状态。

+new-epoch <instance details> :当前的纪元(epoch)已经被更新。

+try-failover <instance details> :一个新的故障迁移操作正在运行中,等待被大多数 Sentinel 选中(waiting to be elected by the majority)。

+elected-leader <instance details> :赢得指定纪元的选举,能够进行故障迁移操作了。

+failover-state-select-slave <instance details> :故障转移操作如今处于 select-slave 状态 —— Sentinel 正在寻找能够升级为主server的从server。

no-good-slave <instance details> :Sentinel 操作未能找到适合进行升级的从server。Sentinel 会在一段时间之后再次尝试寻找合适的从server来进行升级,又或者直接放弃运行故障转移操作。

selected-slave <instance details> :Sentinel 顺利找到适合进行升级的从server。

failover-state-send-slaveof-noone <instance details> :Sentinel 正在将指定的从server升级为主server。等待升级功能完毕。

failover-end-for-timeout <instance details> :故障转移由于超时而中止,只是终于全部从server都会開始复制新的主server(slaves will eventually be configured to replicate with the new master anyway)。

failover-end <instance details> :故障转移操作顺利完毕。全部从server都開始复制新的主server了。

+switch-master <master name> <oldip> <oldport> <newip> <newport> :配置变更,主server的 IP 和地址已经改变。 这是绝大多数外部用户都关心的信息。

+tilt :进入 tilt 模式。

-tilt :退出 tilt 模式。





#故障转移



一次故障转移操作由下面步骤组成:



发现主server已经进入客观下线状态。

对我们的当前纪元进行自增, 并尝试在这个纪元中当选。

假设当选失败, 那么在设定的故障迁移超时时间的两倍之后, 又一次尝试当选。 假设当选成功。 那么运行下面步骤。

选出一个从server。并将它升级为主server。

向被选中的从server发送 SLAVEOF NO ONE 命令,让它转变为主server。

通过公布与订阅功能, 将更新后的配置传播给全部其它 Sentinel , 其它 Sentinel 对它们自己的配置进行更新。

向已下线主server的从server发送 SLAVEOF 命令。 让它们去复制新的主server。

当全部从server都已经開始复制新的主server时, 领头 Sentinel 终止这次故障迁移操作。

Redis3.0--集群安装部署的更多相关文章

  1. ElasticSearch 5.0.0 集群安装部署文档

    1.  搭建环境 3台物理机 操作系统 centos7 es1   192.168.31.141   4g内存   2核 es2   192.168.31.142   4g内存   2核 es3    ...

  2. Redis3.0集群方案分析

    在Redis3.0集群出来之前,大家都对作者antirez寄予厚望,因为Redis从来没有让我们失望过.现在Redis3.0集群出来了,网上出了很多评论文章,都说他的功能多么强大,包括下面这张图是彻底 ...

  3. redis3.0集群部署和测试

    redis3.0集群部署和测试 环境介绍 两台Centos7的虚拟机模拟6个节点,A台3个master节点,B台3个slave节点A地址:172.16.81.140B地址:172.16.81.141r ...

  4. Dubbo入门到精通学习笔记(十八):使用Redis3.0集群实现Tomcat集群的Session共享

    文章目录 1.单节点访问http://192.168.1.61:8082/pay-web-boss/: 2.增加多一个消费者节点:192.168.1.62,以同样的方式部署pay-web-boss工程 ...

  5. redis3.0集群搭建

    生产环境中准备使用redis3.0集群了,花了一天时间研究了一下,下面记录一下集群搭建的过程. 服务器规划: 192.168.116.129    7000,7003 192.168.116.130 ...

  6. HBase集群安装部署

    0x01 软件环境 OS: CentOS6.5 x64 java: jdk1.8.0_111 hadoop: hadoop-2.5.2 hbase: hbase-0.98.24 0x02 集群概况 I ...

  7. flink部署操作-flink standalone集群安装部署

    flink集群安装部署 standalone集群模式 必须依赖 必须的软件 JAVA_HOME配置 flink安装 配置flink 启动flink 添加Jobmanager/taskmanager 实 ...

  8. HBase 1.2.6 完全分布式集群安装部署详细过程

    Apache HBase 是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,是NoSQL数据库,基于Google Bigtable思想的开源实现,可在廉价的PC Server上搭建大规模结构化存 ...

  9. 1.Hadoop集群安装部署

    Hadoop集群安装部署 1.介绍 (1)架构模型 (2)使用工具 VMWARE cenos7 Xshell Xftp jdk-8u91-linux-x64.rpm hadoop-2.7.3.tar. ...

  10. 2 Hadoop集群安装部署准备

    2 Hadoop集群安装部署准备 集群安装前需要考虑的几点硬件选型--CPU.内存.磁盘.网卡等--什么配置?需要多少? 网络规划--1 GB? 10 GB?--网络拓扑? 操作系统选型及基础环境-- ...

随机推荐

  1. dom监听事件class

    layui.use(['layer', 'form'], function(){ var layer = layui.layer ,form = layui.form; var $ = layui.j ...

  2. 【原】CentosDocker安装(一)

    CentosDocker安装 来源:https://www.runoob.com/docker/centos-docker-install.html 1.前提条件 目前,CentOS 仅发行版本中的内 ...

  3. sed输出指定行

    and line ,8p to line ,8p -e 20p - and line -n:取消默认输出.注意:sed命令会默认把输入行打印到屏幕上,所以如果想精准的控制输出,就需要-n. -e:进行 ...

  4. C#DateTimeFormatInfo类

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzAAAACdCAIAAADkAArhAAAgAElEQVR4nO1dWXbjug7UzrI0LS1L0/ ...

  5. python爬虫入门02:教你通过 Fiddler 进行手机抓包

    哟~哟~哟~ hi起来 everybody 今天要说说怎么在我们的手机抓包 通过 python爬虫入门01:教你在Chrome浏览器轻松抓包 我们知道了 HTTP 的请求方式 以及在 Chrome 中 ...

  6. vue-router 根据路由动态添加目录 控制目录权限

    <template> <el-row class="el-menu" > <el-menu router :default-active='$rout ...

  7. Matlab学习笔记(一)

    一.MATLAB概述 (一)运行环境 命令行窗口(Command Window) 表 1-1 数据显示格式设置(e_one_1.m) 格式 实例 说明 format short 3.1416 小数点后 ...

  8. LeetCode(62)Unique Paths

    题目 A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). ...

  9. 关于Windows 10 初始安装的VS2013 SSDT-BI 的BUG 问题

    初始安装,正常安装会出现以下出现信息,随后会被告知未安装成功. 关于SSDT-BI信息可以参见这里 http://jimshu.blog.51cto.com/3171847/1420469 从Wind ...

  10. 慕课笔记利用css进行布局【混合布局练习】

    通过学习div的布局,以一个简单的内容管理网站的布局为例子,用div+css进行简单的网页布局,加深学印象: <html> <head> <title>CSS+di ...