Redis集群--Redis集群之哨兵模式

echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!!html


搭建Redis集群以前请准备好3台已经安装好Redis的服务器,CentOS7下安装Redis请阅读:https://blog.csdn.net/xlecho/article/details/102975520redis

为何须要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

配置若是成功咱们能够看到以下信息: image.png服务器

退出集群

退出集群比较简单,能够直接删除掉上面的配置,也能够执行如下命令微信

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 查看当前节点是否成为了masterspa

  • 我这里原本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

作一个有底线的博客主

原文出处:https://www.cnblogs.com/xlecho/p/11842693.html

相关文章
相关标签/搜索