Redis集群--Redis集群之哨兵模式
echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!!
搭建Redis集群之前请准备好3台已经安装好Redis的服务器,CentOS7下安装Redis请阅读:https://blog.csdn.net/xlecho/article/details/102975520
为什么需要Redis集群
- Redis 本身的 QPS 已经很高了,但是如果在一些并发量非常高的情况下,性能还是会受到影响。这个时候我们希望有更多的 Redis 服务来完成工作。
- 第二个是出于存储的考虑。因为Redis所有的数据都放在内存中,如果数据量大,很容易受到硬件的限制。升级硬件收效和成本比太低,所以我们需要有一种横向扩展的方法。
- 第三个是可用性和安全的问题。如果只有一个Redis服务,一旦服务宕机,那么所有的客户端都无法访问,会对业务造成很大的影响。另一个,如果硬件发生故障,而单机的数据无法恢复的话,带来的影响也是灾难性的。可用性、数据安全、性能都可以通过搭建多个 Reids 服务实现。其中有一个是主节点(master),可以有多个从节点(slave)。主从之间通过数据同步,存储完全相同的数据。如果主节点发生故障,则把某个从节点改成主节点,访问新的主节点。
Redis集群的安装环境准备
| 服务器地址 | 系统 | Redis版本 |
|---|---|---|
| 192.168.222.133 | CentOS7 | 5.0.1 |
| 192.168.222.134 | CentOS7 | 5.0.1 |
| 192.168.222.135 | CentOS7 | 5.0.1 |
我们以135作为master,其他两个节点全部作为slave节点
在slave中的redis.con配置如下代码
slaveof 192.168.222.135 6379
# 注意,如果你的节点设置了密码访问,你需要配置下面这个配置
masterauth master密码
这里没有将slave设置成为‘只读’,如果实际生产环境如果不设置这个集群就会出现重大问题。
配置完成之后重启Redis
service redis start
查看主节点的集群状态
# 启动redis
redis-server redis.conf
# 连接redis
redis-cli -h 192.168.222.135 -p 6379
# 查看状态
info replication
配置如果成功我们可以看到如下信息:

退出集群
退出集群比较简单,可以直接删除掉上面的配置,也可以执行以下命令
slaveof no one
看到这个信息我们就已经完成了我们的主从配置。但是什么是哨兵模式?哨兵模式是基于我们集群的,我们有了集群之后,我们就要来配置我们的哨兵模式了
什么是哨兵模式
哨兵模式英文名Sentinel,它是为了解决Redis集群的高可用应运而生的。Redis集群,一般来说只会有一个master服务,当master挂掉之后,之能手动切换master就会造成一段时间内的服务不可用。sentinel就是专门针对这种情况而产生的一个监听服务。它主要负责监听我们一个组内所有Redis,当我们的master挂掉之后,它就会根据Raft算法进行选举一台新的leader出来,然后将选举出来的leader当成我们的master。
搭建哨兵模式
哨兵模式的主要作用就是监控弄Redis集群,所以我们搭建哨兵模式之前要确认我们的Redis集群已经成功搭建了。哨兵模式的搭建其实也相对比较简单,只需要配置主节点监控即可。
# 找到redis根目录下面的sentinel.conf的配置文件,修改如下配置
daemonize yes
port 26379
protected-mode no
dir /usr/local/redis/redis-5.0.1/sentinel-tmp
sentinel monitor mymaster 192.168.222.135 6379 2
sentinel auth-pass mymaster 48835a9c-7a5a-4ec8-af6a-80af3e87b194
# 如果哨兵3s内没有收到主节点的心跳,哨兵就认为主节点宕机了,默认是30秒
sentinel down-after-milliseconds mymaster 3000
# 如果10秒后,master仍没活过来,则启动failover,默认180s
sentinel failover-timeout mymaster 10000
- 先启动Redis服务,然后在启动sentinel服务
# 启动redis服务
redis-server redis.conf
# 启动sentinel
redis-sentinel sentinel.conf
模拟master宕机,检测sentinel服务是否成功
模拟之前确保我们的redis、sentinel服务都启动了,登录master,直接在master上面进行shutdown。操作完成之后等待一会,然后使用登录我们的从服务器,连接上从服务的redis之后,我们使用命令info replication 查看当前节点是否成为了master
- 我这里本来135是master,使用info replication可以看到如下结果

- 135使用shutdown之后,分别查看134/133两台服务器
注意:采坑

这是由于我们的下面两行配置的位置放反了引起的。正确顺序按照下面的顺序即可
sentinel monitor mymaster 192.168.222.135 6379 2
sentinel auth-pass mymaster 48835a9c-7a5a-4ec8-af6a-80af3e87b194
做一个有底线的博客主
Redis集群--Redis集群之哨兵模式的更多相关文章
- 【运维技术】redis(一主两从三哨兵模式搭建)记录
redis(一主两从三哨兵模式搭建)记录 目的: 让看看这篇文章的的人能够知道:软件架构.软件的安装.配置.基本运维的操作.高可用测试.也包含我自己,能够节省对应的时间. 软件架构: 生产环境使用三台 ...
- Redis 复制技术和高可用sentinel(哨兵模式)
redis的复制技术和高可用(哨兵模式) 1 复制 为什么要复制 实现数据的多副本存储,从而可以实现服务的高可用 提供更好的读性能复制技术的关键点及难点 如何指定被复制对象 增量还是全量以及如何实现增 ...
- Redis 集群_主从配置_哨兵模式
首先:slaveof 可以在[从]服务器启动一个service服务,直接将[从]服务器定义为[从Redis] redis-server --slaveof <master-ip> < ...
- Redis的集群方案之Sentinel(哨兵模式)(待实践)
哨兵模式是主从切换的一种方案,但是可以借助此方案实现集群,达到高可用. 先收集教程,待实践. 参考: https://redis.io/topics/sentinel(官方文档) http://ife ...
- redis(一主两从三哨兵模式搭建)记录
转自:http://www.cnblogs.com/fly-piglet/p/9836314.html 目的: 让看看这篇文章的的人能够知道:软件架构.软件的安装.配置.基本运维的操作.高可用测试.也 ...
- linux安装redis及主从复制、读写分离、哨兵模式
Redis安装与部署 版本最好选择3.0及以上.以后还可以部署Redis集群. 1.下载: [root@bogon redis-3.0.0]# cd /usr/local [root@bogon lo ...
- redis 的一主二从三哨兵模式
概述 在部署redis 的时候,如果redis宕机,缓存将不可用,redis提供了哨兵模式保证redis实现高可用. 即一台主机两台从机,三台哨兵主机,如果主实例宕机,哨兵将将一台从机升级为主机.实现 ...
- redis集群主从集群搭建、sentinel(哨兵集群)配置以及Jedis 哨兵模式简要配置
前端时间项目上为了提高平台性能,为应用添加了redis缓存,为了提高服务的可靠性,redis部署了高可用的主从缓存,主从切换使用的redis自带的sentinel集群.现在权作记录.
- Redis Sentinel的Redis集群(主从&Sharding)高可用方案
在不使用redis3.0之后版本的情况下,对于redis服务端一般是采用Sentinel哨兵模式,也就是一主多备的方式. 这里,先抛出三个问题, 问题1:单节点宕机数据丢失?问题2:多节点(节点间没有 ...
随机推荐
- [以太坊源代码分析] I.区块和交易,合约和虚拟机
最近在看以太坊(Ethereum)的源代码, 初初看出点眉目. 区块链是近年热点之一,面向大众读者介绍概念的文章无数,有兴趣的朋友可自行搜索.我会从源代码实现入手,较系统的介绍一下以太坊的系统设计和协 ...
- guava缓存批量获取的一个坑
摘要 Guava Cache是Google开源的Java工具集库Guava里的一款缓存工具,一直觉得使用起来比较简单,没想到这次居然还踩了一个坑 背景 功能需求抽象出来很简单,就是将数据库的查询sth ...
- Tomcat7.0.40注册到服务启动报错error Code 1 +connector attribute sslcertificateFile must be defined when using ssl with apr
Tomcat7.0.40 注册到服务启动遇到以下几个问题: 1.启动报错errorCode1 查看日志如下图: 解决办法: 这个是因为我的jdk版本问题,因为电脑是64位,安装的jdk是32位的所以会 ...
- 06-01 DeepLearning-图像识别
目录 深度学习-图像识别 一.人脸定位 二.手工提取特征的图像分类 2.1 识图认物 2.2 传统分类系统的特征提取 2.3 计算机眼中的图像 2.4 什么是图像特征? 2.5 卷积运算 2.6 利用 ...
- UVA - 11795 Mega Man's Mission
Mega Man is off to save the world again. His objective is to kill the Robots created by Dr. Wily who ...
- JVM系列一:JVM内存模型
今天起开始总结JVM.自己也看了好多JVM相关的知识,在此做个总结. 打算分为五个部分来讲:JVM内存模型.JVM类加载机制.JVM垃圾回收机制.JVM启动参数设置及优化.JVM其他相关. 今天首先来 ...
- Jsoup-解析HTML工具(简单爬虫工具)
Jsoup-解析HTML工具(简单爬虫工具) 一.简介 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS ...
- shark恒破解笔记4-API断点GetPrivateProfileStringA
这小节是通过断在GetPrivateProfileStringA,然后找到注册码的. 1.运行程序输入假码111111,提示重启.通过这判断这是一个重启来验证的,那么它是如何来验证的呢?观察程序目录下 ...
- 01 【PMP】组织结构类型
[PMP]组织结构类型 1.简单型 描述:人员并肩工作,所有者/经营者直接做出主要决定并监督执行. PM角色:兼职(协调员) PM权限:极少(无) 项目管理人员:极少(无) 资源可用性:极少(无) ...
- CSS中各种布局的背后(*FC)
CSS中各种布局的背后,实质上是各种*FC的组合.CSS2.1中只有BFC和IFC,CSS3 中还增加了FFC和GFC. 盒模型(BoxModel) 上图为W3C标准盒模型,另外还有一种IE盒模型(I ...