iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >怎么实现Redis的高可用
  • 679
分享到

怎么实现Redis的高可用

2024-04-02 19:04:59 679人浏览 泡泡鱼
摘要

这篇文章主要介绍了怎么实现Redis的高可用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。怎么实现Redis的高可用?要想实现高可用,一台机

这篇文章主要介绍了怎么实现Redis高可用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

怎么实现Redis的高可用?

要想实现高可用,一台机器肯定是不够的,而redis要保证高可用,有2个可选方案。

主从架构

主从模式是最简单的实现高可用的方案,核心就是主从同步。主从同步的原理如下:

  1. slave发送sync命令到master

  2. master收到sync之后,执行bgsave,生成RDB全量文件

  3. master把slave的写命令记录到缓存

  4. bgsave执行完毕之后,发送RDB文件到slave,slave执行

  5. master发送缓存中的写命令到slave,slave执行

这里我写的这个命令是sync,但是在redis2.8版本之后已经使用psync来替代sync了,原因是sync命令非常消耗系统资源,而psync的效率更高。

哨兵

基于主从方案的缺点还是很明显的,假设master宕机,那么就不能写入数据,那么slave也就失去了作用,整个架构就不可用了,除非你手动切换,主要原因就是因为没有自动故障转移机制。而哨兵(sentinel)的功能比单纯的主从架构全面的多了,它具备自动故障转移、集群监控、消息通知等功能。

哨兵可以同时监视多个主从服务器,并且在被监视的master下线时,自动将某个slave提升为master,然后由新的master继续接收命令。整个过程如下:

  1. 初始化sentinel,将普通的redis代码替换成sentinel专用代码

  2. 初始化masters字典和服务器信息,服务器信息主要保存ip:port,并记录实例的地址和ID

  3. 创建和master的两个连接,命令连接和订阅连接,并且订阅sentinel:hello频道

  4. 每隔10秒向master发送info命令,获取master和它下面所有slave的当前信息

  5. 当发现master有新的slave之后,sentinel和新的slave同样建立两个连接,同时每个10秒发送info命令,更新master信息

  6. sentinel每隔1秒向所有服务器发送ping命令,如果某台服务器在配置的响应时间内连续返回无效回复,将会被标记为下线状态

  7. 选举出领头sentinel,领头sentinel需要半数以上的sentinel同意

  8. 领头sentinel从已下线的的master所有slave中挑选一个,将其转换为master

  9. 让所有的slave改为从新的master复制数据

  10. 将原来的master设置为新的master的从服务器,当原来master重新回复连接时,就变成了新master的从服务器

sentinel会每隔1秒向所有实例(包括主从服务器和其他sentinel)发送ping命令,并且根据回复判断是否已经下线,这种方式叫做主观下线。当判断为主观下线时,就会向其他监视的sentinel询问,如果超过半数的投票认为已经是下线状态,则会标记为客观下线状态,同时触发故障转移。

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么实现Redis的高可用”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网node.js频道,更多相关知识等着你来学习!

--结束END--

本文标题: 怎么实现Redis的高可用

本文链接: https://www.lsjlt.com/news/96128.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么实现Redis的高可用
    这篇文章主要介绍了怎么实现Redis的高可用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。怎么实现Redis的高可用?要想实现高可用,一台机...
    99+
    2024-04-02
  • Redis Sentinel实现高可用配置
    Redis Sentinel实现高可用配置?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、创建redis-sentinel_26379.co...
    99+
    2024-04-02
  • redis客户端怎么实现高可用读写分离
    小编给大家分享一下redis客户端怎么实现高可用读写分离,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!背景(1) redis单机的读写性能轻松上大几万,不过线上环境不会只部署光秃秃的一个节点,还是会配合 sentinel ...
    99+
    2023-06-20
  • 怎么实现Nginx高可用
    这篇文章主要介绍了怎么实现Nginx高可用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么实现Nginx高可用文章都会有所收获,下面我们一起来看看吧。 准备工作: 192...
    99+
    2024-04-02
  • MEMCACHE高可用怎么实现
    小编给大家分享一下MEMCACHE高可用怎么实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MEMCACHE高可用,用MEMC...
    99+
    2024-04-02
  • redis三种高可用方式部署的实现
    前言 一、主从复制 概念 和mysql的主从复制一样 都是将服务器的数据复制到另一个数据库中 发送的称为master 接受的叫slave 数据为单向传输 只可以主到从 每台Redis...
    99+
    2024-04-02
  • redis的高可用方案怎么部署
    Redis的高可用方案有多种部署方式,以下是其中几种常见的方案: 主从复制(Master-Slave Replication):...
    99+
    2023-10-28
    redis
  • java高并发高可用怎么实现
    要实现高并发和高可用的Java系统,可以采取以下几个步骤:1. 水平扩展:通过增加服务器数量来分担负载,可以使用负载均衡器来将请求分...
    99+
    2023-10-20
    java
  • 如何利用Redis实现分布式锁的高可用
    如何利用Redis实现分布式锁的高可用,需要具体代码示例一、引言在分布式系统中,由于多个进程或线程可以同时访问共享资源,会带来资源竞争的问题。为了解决这个问题,需要引入分布式锁来进行资源的互斥访问。Redis作为一种内存数据库,提供了分布式...
    99+
    2023-11-07
    高可用 redis 分布式锁
  • redis sentinel监控高可用集群实现的配置步骤
    目录一、端口转发二、修改HOST文件三、用第三方代理haproxy四、插曲一、端口转发 如果在一个主机里面,安装了两个redis实例,可以在项目里面配置IP端口,用iptables转...
    99+
    2024-04-02
  • 云服务器怎么实现高可用
    要实现云服务器的高可用性,可以采取以下措施:1. 使用负载均衡:将流量均匀地分发到多台服务器上,避免单点故障,提高系统的可用性。2....
    99+
    2023-09-22
    云服务器
  • nginx怎么结合keepalived实现高可用
    本篇内容主要讲解“nginx怎么结合keepalived实现高可用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“nginx怎么结合keepalived实现高可用...
    99+
    2024-04-02
  • Redis高可用集群是什么
    这篇文章主要介绍“Redis高可用集群是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Redis高可用集群是什么”文章能帮助大家解决问题。几种 Redis 高可...
    99+
    2024-04-02
  • Redis怎么加锁实现高并发
    在Redis中可以使用SETNX命令实现简单的分布式锁。SETNX命令是一个原子操作,用于设置一个键的值,如果该键不存在,则设置成功...
    99+
    2023-08-31
    Redis
  • redis中的高可用与持久化怎么配置
    本篇内容主要讲解“redis中的高可用与持久化怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“redis中的高可用与持久化怎么配置”吧!一、Redis 高...
    99+
    2024-04-02
  • 怎么使用高斯Redis实现二级索引
    这篇“怎么使用高斯Redis实现二级索引”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用高斯Redis实现二级索引”文...
    99+
    2023-07-02
  • Redis高可用集群redis-cluster详解
    哨兵模式主要解决了手动切换主从节点的问题 1 , 哨兵模式的缺陷 .主从节点切换的时候存在访问瞬断,等待时间较长, .只有一个master节点提供写,slave节点提供读,尽管写的效...
    99+
    2024-04-02
  • 怎么用Protobuf与Redis实现高效序列化
    要使用 Protobuf 与 Redis 实现高效序列化,可以按照以下步骤进行: 定义 Protobuf 消息类型:首先需要定义...
    99+
    2024-04-29
    Redis Protobuf
  • 【Redis】Sentinel 高可用架构
    一 前言    Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身...
    99+
    2024-04-02
  • Spring Cloud怎么实现高可用的配置中心
    这篇文章主要为大家展示了“Spring Cloud怎么实现高可用的配置中心”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Spring Cloud怎么实现高可用的配置中心”这篇文章吧。配置中心如何...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作