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:多节点(节点间没有 ...
随机推荐
- Apache Kylin 概述
1 Kylin是什么 今天,随着移动互联网.物联网.AI等技术的快速兴起,数据成为了所有这些技术背后最重要,也是最有价值的"资产".如何从数据中获得有价值的信息?这个问题驱动了相关 ...
- 局部敏感哈希LSH(Locality-Sensitive Hashing)——海量数据相似性查找技术
一. 前言 最近在工作中需要对海量数据进行相似性查找,即对微博全量用户进行关注相似度计算,计算得到每个用户关注相似度最高的TOP-N个用户,首先想到的是利用简单的协同过滤,先定义相似性度量(c ...
- 支撑微博亿级社交平台,小白也能玩转Redis集群(原理篇)
Redis作为一款性能优异的内存数据库,支撑着微博亿级社交平台,也成为很多互联网公司的标配.这里将以Redis Cluster集群为核心,基于最新的Redis5版本,从原理再到实战,玩转Redis集群 ...
- JavaScript函数总结—越努力,越幸运!
JavaScript 函数总结 JavaScript为web的编程脚本语言. JavaScript由三部分组成:emc(语法) dom(文档对象模型) bom(浏览器对象模型). [函数的定义] 1. ...
- java集合之Stack栈基础
Stack堆栈: 是后进先出(LIFO)的对象堆栈,继承Vector—AbstractList--AbstractCollection类,底层是通过数组实现, boolean empty() 判断堆栈 ...
- MFC::使用mysql
下载mysql-installer-community-5.7.16.0.msi,安装 mysql server即可. 创建工程包含头文件 #include "winsock.h" ...
- PHP代码审计基础-中级篇
初级篇更多是对那些已有的版本漏洞分析,存在安全问题的函数进行讲解,中级篇更多是针对用户输入对漏洞进行利用 中级篇更多是考虑由用户输入导致的安全问题. 预备工具首先要有php本地环境可以调试代码 总结就 ...
- Java中package与import
使用实例: package 一般来说,package语句必须作为源文件的第一条非注释性语句.一个java源文件只能指定一个包,即只能包含一条package语句,该源文件中可以定义多个类,则这些类将全部 ...
- 如何在CentOS6.4系统上安装KVM虚拟机
CentOS6.4系统上安装KVM虚拟机 备注:以下操作说明是经过实验验证后总结出来的笔录,有需要的朋友可以进行参考,以下是基于VMware12.5.2虚拟机版本上安装的实验环境. 一.安装KVM ...
- 06_基本框架_VMCS_GuestArea
1 Guest-State Area 1.1 References 注释: 其实 内容很多 一般是不背 的:需要的时候来查就行:但是要大致知道是做啥的. 代码 > 设置 Guest Area / ...