首页 > 数据库 >redis高可用方案

redis高可用方案

时间:2024-11-11 16:46:06浏览次数:5  
标签:方案 持久 AOF Redis 可用 redis RDB 数据 节点

        redis 高可用(High Availability,HA)是指 Redis 通过一系列技术手段确保在面临故障的情况下也能持续提供服务的能力。

        redis 作为一个内存数据库,其数据通常存储在内存中,一旦发生故障,可能导致数据丢失或服务中断,所以,为了保证 Redis 的高可用,它主要采用了以下两种手段:

  1. 持久化:持久化机制能够在一定程度上保证即使在服务器意外停止后,数据还能被恢复。
  2. 多机部署:将原本为单机的 Redis 服务,变为多个 Redis 节点,主节点用来处理数据的写操作,然后再把最新的数据同步给从节点,这样即使其中有一个节点宕机了,那么其他节点依然保存了最新的数据,从而避免了 Redis 的单机故障。

1.持久化

持久化是指将数据从内存中存储到持久化存储介质中(如硬盘)的过程,以便在程序重启或者系统崩溃等情况下,能够从持久化存储介质中恢复数据。
Redis 4.0 之后支持以下 3 种持久化方案:

  1. RDB(Redis DataBase)持久化:快照方式持久化,将某一个时刻的内存数据,以二进制的方式写入磁盘;
  2. AOF(Append Only File)持久化:文件追加持久化,记录所有非查询操作命令,并以文本的形式追加到文件中;
  3. 混合持久化:RDB + AOF 混合方式的持久化,Redis 4.0 之后新增的方式,混合持久化是结合了 RDB 和 AOF 的优点,在写入的时候,先把当前的数据以 RDB 的形式写入文件的开头,再将后续的操作命令以 AOF 的格式存入文件,这样既能保证 Redis 重启时的速度,又能减低数据丢失的风险。

    1.1 RDB 持久化

    RDB(Redis Database)是将某一个时刻的内存快照(Snapshot),以二进制的方式写入磁盘的持久化机制。
    RDB 持久化机制有以下优缺点:
    优点:

  4. 速度快:相对于 AOF 持久化方式,RDB 持久化速度更快,因为它只需要在指定的时间间隔内将数据从内存中写入到磁盘上。
  5. 空间占用小:RDB 持久化会将数据保存在一个压缩的二进制文件中,因此相对于 AOF 持久化方式,它占用的磁盘空间更小。
  6. 恢复速度快:因为 RDB 文件是一个完整的数据库快照,所以在 Redis 重启后,可以非常快速地将数据恢复到内存中。
  7. 可靠性高:RDB 持久化方式可以保证数据的可靠性,因为数据会在指定时间间隔内自动写入磁盘,即使 Redis 进程崩溃或者服务器断电,也可以通过加载最近的一次快照文件恢复数据。

缺点:

  1. 数据可能会丢失:RDB 持久化方式只能保证数据在指定时间间隔内写入磁盘,因此如果 Redis 进程崩溃或者服务器断电,从最后一次快照保存到崩溃的时间点之间的数据可能会丢失。
  2. 实时性差:因为 RDB 持久化是定期执行的,因此从最后一次快照保存到当前时间点之间的数据可能会丢失。如果需要更高的实时性,可以使用 AOF 持久化方式。

所以,RDB 持久化方式适合用于对数据可靠性要求较高,但对实时性要求不高的场景,如 Redis 中的备份和数据恢复等。

1.2 AOF 持久化

AOF(Append Only File)它是将 Redis 每个非查询操作命令都追加记录到文件(appendonly.aof)中的持久化机制。
AOF 持久化机制有以下优缺点:
优点:

  1. 数据不容易丢失:AOF 持久化方式会将 Redis 执行的每一个写命令记录到一个文件中,因此即使 Redis 进程崩溃或者服务器断电,也可以通过重放 AOF 文件中的命令来恢复数据。
  2. 实时性好:由于 AOF 持久化方式是将每一个写命令记录到文件中,因此它的实时性比 RDB 持久化方式更好。
  3. 数据可读性强:AOF 持久化文件是一个纯文本文件,可以被人类读取和理解,因此可以方便地进行数据备份和恢复操作。

缺点:

  1. 写入性能略低:由于 AOF 持久化方式需要将每一个写命令记录到文件中,因此相对于 RDB 持久化方式,它的写入性能略低。
  2. 占用磁盘空间大:由于 AOF 持久化方式需要记录每一个写命令,因此相对于 RDB 持久化方式,它占用的磁盘空间更大。
  3. AOF 文件可能会出现损坏:由于 AOF 文件是不断地追加写入的,因此如果文件损坏,可能会导致数据无法恢复。

所以,AOF 持久化方式适合用于对数据实时性要求较高,但对数据大小和写入性能要求相对较低的场景,如需要对数据进行实时备份的应用场景。

1.3 混合持久化

Redis 混合持久化是指将 RDB 持久化方式和 AOF 持久化方式结合起来使用,以充分发挥它们的优势,同时避免它们的缺点,它的优缺点如下:
优点:混合持久化结合了 RDB 和 AOF 持久化的优点,开头为 RDB 的格式,使得 Redis 可以更快的启动,同时结合 AOF 的优点,有减低了大量数据丢失的风险。
缺点

  1. 实现复杂度高:混合持久化需要同时维护 RDB 文件和 AOF 文件,因此实现复杂度相对于单独使用 RDB 或 AOF 持久化方式要高。
  2. 可读性差:AOF 文件中添加了 RDB 格式的内容,使得 AOF 文件的可读性变得很差;
  3. 兼容性差:如果开启混合持久化,那么此混合持久化 AOF 文件,就不能用在 Redis 4.0 之前版本了。

所以,Redis 混合持久化方式适合用于,需要兼顾启动速度和减低数据丢失的场景。但需要注意的是,混合持久化的实现复杂度较高、可读性差,只能用于 Redis 4.0 以上版本,因此在选择时需要根据实际情况进行权衡。

2.集群部署

  1. 主从同步
  2. 哨兵模式
  3. Redis Cluster(Redis 集群)

2.1 主从同步

主从同步 (主从复制) 是 Redis 高可用服务的基石,也是多机运行中最基础的一个。我们把主要存储数据的节点叫做主节点 (master),把其他通过复制主节点数据的副本节点叫做从节点 (slave)

2.2 哨兵模式

主从同步存在一个致命的问题,当主节点奔溃之后,需要人工干预才能恢复 Redis 的正常使用。
所以我们需要一个自动的工具——Redis Sentinel (哨兵模式) 来把手动的过程变成自动的,让 Redis 拥有自动容灾恢复 (failover) 的能力

2.3 redis Cluster

        redis Cluster 是 Redis 5.0 版本推出的 redis 集群方案,它将数据分布在不同的服务区上,以此来降低系统对单主节点的依赖,并且可以大大的提高 Redis 服务的读写性能。

  1. 节点 A 收到客户端的 cluster meet 命令
  2. 节点 A 根据收到的 IP 地址和端口号,向 B 发送一条 meet 消息
  3. 节点 B 收到 meet 消息返回 pong
  4. 节点 A 知道 B 收到了 meet 消息,返回一条 ping 消息,握手成功
  5. 最后,节点 A 将会通过 gossip 协议把节点 B 的信息传播给集群中的其他节点,其他节点也将和 B 进行握手

标签:方案,持久,AOF,Redis,可用,redis,RDB,数据,节点
From: https://blog.csdn.net/qq827245563/article/details/143689931

相关文章

  • 超强抗干扰单键触摸/电容式触控IC-VK3601 SOT23-6单通道直接输出/触摸感应方案原厂
    产品品牌:永嘉微电/VINKA产品型号:VK3601封装形式:SOT23-6概述VK3601具有1个触摸按键,可用来检测外部触摸按键上人手的触摸动作。该芯片具有较高的集成度,仅需极少的外部组件便可实现触摸按键的检测。提供了1路直接输出功能。芯片内部采用特殊的集成电路,具有高电源电压抑制比,可......
  • 井底车场人员进入识别智慧矿山一体机烟雾检测识别煤矿井下视频监控与AI智能分析风险智
    随着工业化和信息化的深度融合,煤矿行业正面临着转型升级的历史机遇。在这一背景下,煤矿安全管理的智能化、自动化成为了行业发展的必然趋势。智慧煤矿方案正是在这样的行业需求下应运而生,旨在通过智慧矿山一体机实现煤矿井下作业的监控视频统一汇聚管理,为煤矿安全管理提供强有力的......
  • 一体机场景ceph高可用介绍
    本文分享自天翼云开发者社区《一体机场景ceph高可用介绍》,作者:b****n一体机场景使用ceph开源架构作为存储系统的主体架构,原生方案支持存储数据高可用性,包括副本数可以灵活控制/支持故障域分隔,数据强一致性/多种故障场景自动进行修复自愈/没有单点故障,自动管理。部署形态存储......
  • 视频智能分析网关视频分析网关离岗检测电力营业厅智能视频分析与统一管控方案
    我国电力用户目前对电力的使用需求、使用方式、服务质量要求等都实现了大幅度的增强,优质服务的持续提供已经成为供电营业厅在当前的时代环境中,赢取消费者、占据市场、维持自身所属企业健康发展的必要保证。传统监控主要用于已发生事件的追溯,为了精准定位已发生事件的时间、地点、......
  • 海柔仿真系统存储实践:混合云架构下实现高可用与极简运维
    海柔创新是一家专注于箱式仓储机器人系统的研发和设计的科技公司,其仿真平台通过数字模拟技术,再现实际仓库环境和设备,利用导入的地图、订单、库存及策略配置等数据来验证和优化仓储解决方案,确保设计方案的效率和合理性。最初,海柔的仿真平台在单机环境中运行,但随着数据量的增长,运维......
  • 智启新篇 | 您的专属AI大模型解决方案!
    随着汽车智能化程度的不断提升,智能座舱作为汽车的重要组成部分,其功能和复杂度也在不断增加。从多屏交互、增强现实(AR)技术到个性化设置和语音交互,智能座舱为驾驶者提供了前所未有的驾驶体验。然而,这些新技术的引入也使得智能座舱的测试变得更加复杂和困难。在这样的背景下,AI大......
  • redis cluster集群部署(docker部署)
    1.集群说明  三台测试机器172.16.4.78、172.16.4.79、172.16.4.80,做三主三从,请提前安装好docker以及docker-compose主从槽位容器名称库连接方式172.16.4.78:26379172.16.4.78:263800-5460redis_26379、redis_26380cluster集群只有0库代理三个主库做轮询172.16.4......
  • Mysql高可用架构方案
    目录Mysql介绍高可用结构主从模式主从模式介绍主从复制技术主从模式注意事项MHA(MasterHighAvailability)MHA模式介绍MHA工作流程MMM(Multi-MasterReplicationManagerForMysql)MGR(MysqlGroupReplication)总结Mysql介绍Mysql是典型的开源关系型数据库,是许多网站、应用程序、企业软件......
  • Elasticsearch上创建的index是yellow健康状态的解决方案
    在Elasticsearch中,索引的健康状态(healthstatus)反映了索引的分片分配情况和集群的整体健康状况。这些状态可以帮助您快速了解索引和集群的运行情况。以下是Elasticsearch中索引的三种健康状态及其意义:1.green(绿色)含义:所有主分片(primaryshards)和副本分片(replicashards)都已成功......
  • 深度学习中模型轻量化及具体方案应用
    模型轻量化介绍在深度学习中,模型轻量化是一项关键技术,用于在不显著损失模型精度的前提下减少模型的计算量和存储需求。轻量化技术尤其适用于资源受限的设备(如移动设备、嵌入式系统)上部署模型。模型轻量化的核心目标是提高推理速度、降低功耗、减少内存占用,以便在边缘设备上实......