redis哨兵模式说明与搭建详解

 更新时间:2023年01月26日 14:03:23   作者:王云召  
这篇文章主要介绍了redis哨兵模式说明与搭建详解,需要的朋友可以参考下

哨兵模式是redis高可用的一种解决方案。

哨兵必须用三个实例取保证自己的高可用,但是哨兵+主从模式是不能保证消息不丢失的。

为什么用三个来保证呢?

假设现在有两个服务器,第一台有redis主节点M1,和哨兵S1,第二台有redis从节点S2,哨兵S2。

如果M1宕机,S1和S2中只要有1个哨兵认为master宕机就可以还行切换,此时哨兵大多数(我理解的大多数的过半)还在运行,那么S1,S2能通过选举,拿出来一个哨兵进行故障转移。

如果第一个服务器整个宕机,M1,S1都已经死掉了,此时S2发现M1宕机,但是哨兵只有一个了,不满足大多数的机器存活,无法选举,就没有办法来执行故障转移。虽然另外一台机器还有一个R1,但是故障转移不会执行。

经典的是三节点的哨兵集群

如果M1所在机器宕机了,那么三个哨兵还剩下2个,S2和S3可以一致认为master宕机,然后选举出一个来执行故障转移。

同时3个哨兵的大多数是2,所以还剩下的2个哨兵运行着,就可以允许执行故障转移。

接下来谈一谈怎么做哨兵

首先我们需要搭建个一主两从的redis,单个节点的redis安装链接如下

redis安装包下载地址Redis

我们可以将单个redis安装三次(6381为主机,6380,6379为从机),然后修改配置文件

1.配置redis.conf文件中的端口号分别为6379,6380,6381,

2.daemonize均为yes

3.6380和6379 均添加slaveof 127.0.0.1 6379  (我是在一台服务器上安装的,若不是一台服务器,ip换为redis主机ip)

 分别使用./src/redis-server ./myredis/redis.conf 命令启动redis。

启动后使用./src/redis-cli -p 6379 -h 127.0.0.1 连接redis的客户端  (ip和端口换成自己的)

再执行info Replication,即可看到主从状态 

三台状态如下

 

主从就搭建好了。

接下来配置哨兵

将刚刚的文件redis-6379 复制三份,分别重命名为sentinel-26379,sentinel-26380,sentinel-26381

然后分别修改三个文件的配置文件sentinel.conf 

#端口号 (换成相应sentinel的端口号)
port 26379 
 
#守护进程,后台启动
daemonize yes
 
#监测redis集群的主机
sentinel monitor mymaster 127.0.0.1 6381 1

 修改完毕之后使用./src/sentinel-server ./sentinel.conf启动,成功后,

使用./src/resic-cli -p 26379 命令连接sentinel(其他两个也可以使用这个连接),成功后,使用info命令,可以看到监听的redis集群状态

到此这篇关于redis哨兵模式详解的文章就介绍到这了,更多相关redis哨兵模式详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Redis中如何设置日志

    Redis中如何设置日志

    这篇文章主要介绍了Redis中如何设置日志问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 关于Redis网络模型的源码详析

    关于Redis网络模型的源码详析

    这篇文章主要给大家介绍了关于Redis网络模型的源码,文中通过示例代码介绍的非常详细,对大家的学习或者使用Redis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-07-07
  • Redis笔记点赞排行榜的实现示例

    Redis笔记点赞排行榜的实现示例

    探店笔记类似点评网站的评价,本文主要介绍了Redis笔记点赞排行榜的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 如何利用 Redis 实现接口频次限制

    如何利用 Redis 实现接口频次限制

    这篇文章主要介绍了如何利用 Redis 实现接口频次限制,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Redis教程(十五):C语言连接操作代码实例

    Redis教程(十五):C语言连接操作代码实例

    这篇文章主要介绍了Redis教程(十五):C语言连接操作代码实例,本篇博客是该系列博客中的最后一篇,在这里将给出基于Redis客户端组件访问并操作Redis服务器的代码示例,需要的朋友可以参考下
    2015-05-05
  • redis实现多级缓存同步方案详解

    redis实现多级缓存同步方案详解

    这篇文章主要介绍了redis实现多级缓存同步方案详解,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • redis延时队列zset实现的示例

    redis延时队列zset实现的示例

    延时队列是一种常用的设计模式,用于处理那些需要在未来某个时间点执行的任务,本文主要介绍了redis延时队列zset实现的示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08
  • redis实现分布式全局唯一id的示例代码

    redis实现分布式全局唯一id的示例代码

    在某些场景中,我们需要生成全局的唯一ID,本文主要介绍了redis实现分布式全局唯一id的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • Redis 过期键删除策略的实现示例

    Redis 过期键删除策略的实现示例

    Redis的过期数据删除策略主要有三种,包括定时删除、惰性删除和定期删除,本文主要介绍了Redis 过期键删除策略的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Redis分布式锁python-redis-lock使用方法

    Redis分布式锁python-redis-lock使用方法

    这篇文章主要介绍了Redis分布式锁python-redis-lock使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11

最新评论