Redis数据库 | 发布订阅、主从复制、哨兵模式、缓存雪崩

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis数据库 | 发布订阅、主从复制、哨兵模式、缓存雪崩


Redis发布订阅

Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息

Redis 客户端可以订阅任意数量的频道

Redis主从复制

Redis主从复制是指在Redis中设置一个主节点(Master)和一个或多个从节点(Slave),主节点将自己的数据复制到从节点上,从节点会自动同步主节点上的数据,以实现数据的备份和读写分离

  • 数据备份和容灾:通过主从复制,可以将主节点的数据复制到一个或多个从节点上,从而实现数据的备份和容灾。当主节点发生故障或数据丢失时,可以快速切换到从节点,保证数据的可用性和持久性
  • 负载均衡:通过将读操作分摊到多个从节点上,可以减轻主节点的负载压力。主节点专注于处理写操作,而从节点处理读操作,提高系统的整体性能和吞吐量
  • 高可用性:主从复制可以提高系统的可用性。当主节点发生故障时,可以快速切换到从节点,实现自动故障转移,减少服务中断时间,提高系统的稳定性和可靠性
  • 数据分析和报表生成:通过将读操作分摊到从节点上,可以用于数据分析和报表生成。由于主节点专注于处理写操作,从节点可以用于查询和分析数据,提供实时的数据分析和报表生成功能
  • 高并发读取:通过将读操作分摊到多个从节点上,可以提高系统的并发读取能力。多个从节点可以同时处理读请求,提高系统的并发处理能力,减少读取的响应时间

哨兵模式

哨兵模式是Redis提供的一种高可用性解决方案,用于监控和管理Redis节点的自动故障转移

  • 主观下线:一个哨兵节点基于自己的主观判断,认为一个Redis节点(主节点或从节点)不可用的状态;当一个哨兵节点检测到一个节点无法响应心跳或超时时,它会将该节点标记为主观下线;主观下线只是一个哨兵节点自己的看法,并不代表其他哨兵节点或客户端也认为该节点不可用
  • 客观下线:多个哨兵节点之间达成共识,认为一个节点不可用的状态;当多个哨兵节点通过消息通信交换信息后,如果它们都达成共识,认为一个节点不可用,那么该节点将被标记为客观下线;客观下线是基于多个节点的共识,具有更高的可靠性和准确性

单哨兵模式

单哨兵模式(Single Sentinel mode)是哨兵模式的一种简化形式,适用只有一个Redis主节点和一个哨兵节点的情况

多哨兵模式

多哨兵模式是哨兵模式的一种扩展形式,适用于需要更高可靠性和容错性的情况

Redis缓存穿透与雪崩

缓存穿透

Redis缓存穿透(Cache Penetration):恶意请求或者非法请求绕过缓存层直接访问数据库。当一个请求查询一个不存在的数据时,缓存层无法命中缓存,也无法从数据库中获取数据,导致每次请求都访问数据库,增加数据库的负载,并且无法获得有效的缓存

布隆过滤器

所有可能的查询参数以hash形式存储,不符合则丢弃,避免对底层存储系统的查询压力

缓存空对象

存储层不命中后,即使返回的空对象也将其存储,并设置过期时间,之后再访问这个数据将会从缓存中获取,保护后端数据源

缓存雪崩

Redis缓存雪崩(Cache Avalanche):缓存中的大量数据同时过期或者缓存服务器宕机,导致大量请求直接访问数据库,造成数据库瞬时压力过大,甚至引起数据库崩溃

解决方案:

  • 高可用:系统能够在长时间运行过程中保持正常的运行状态,即系统具备持续稳定可用的能力。在高可用系统中,系统的服务能够始终对外提供服务,不会因为单点故障或异常情况而导致系统不可用
  • 限流降级:限流降级是一种在系统高负载或异常情况下,通过限制请求的访问量或降低服务质量,保证系统的稳定性和可用性的策略
  • 数据预热:系统低峰期或缓存数据过期前,提前主动加载缓存数据,使其重新生成或刷新缓存,避免大量请求同时落到数据库上

🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请——点赞👍收藏⭐️评论📝


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
10天前
|
缓存 NoSQL 中间件
Redis,分布式缓存演化之路
本文介绍了基于Redis的分布式缓存演化,探讨了分布式锁和缓存一致性问题及其解决方案。首先分析了本地缓存和分布式缓存的区别与优劣,接着深入讲解了分布式远程缓存带来的并发、缓存失效(穿透、雪崩、击穿)等问题及应对策略。文章还详细描述了如何使用Redis实现分布式锁,确保高并发场景下的数据一致性和系统稳定性。最后,通过双写模式和失效模式讨论了缓存一致性问题,并提出了多种解决方案,如引入Canal中间件等。希望这些内容能为读者在设计分布式缓存系统时提供有价值的参考。感谢您的阅读!
Redis,分布式缓存演化之路
|
2月前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
188 85
|
1月前
|
存储 缓存 NoSQL
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
|
1月前
|
缓存 NoSQL 关系型数据库
云端问道21期实操教学-应对高并发,利用云数据库 Tair(兼容 Redis®)缓存实现极速响应
本文介绍了如何通过云端问道21期实操教学,利用云数据库 Tair(兼容 Redis®)缓存实现高并发场景下的极速响应。主要内容分为四部分:方案概览、部署准备、一键部署和完成及清理。方案概览中,展示了如何使用 Redis 提升业务性能,降低响应时间;部署准备介绍了账号注册与充值步骤;一键部署详细讲解了创建 ECS、RDS 和 Redis 实例的过程;最后,通过对比测试验证了 Redis 缓存的有效性,并指导用户清理资源以避免额外费用。
|
2月前
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
127 14
|
2月前
|
缓存 NoSQL Serverless
云数据库Tair:从稳定低延时缓存到 Serverless KV
本次分享聚焦云数据库Tair的使用,涵盖三部分内容:1) Tair概览,介绍其作为稳定低延时缓存及KV数据库服务的特点和优势;2) 稳定低延迟缓存技术,探讨如何通过多线程处理、优化内核等手段提升性能与稳定性;3) 从缓存到Serverless KV的演进,特别是在AI大模型时代,Tair如何助力在线服务和推理缓存加速。Tair在兼容性、性能优化、扩缩容及AI推理加速方面表现出色,满足不同场景需求。
|
2月前
|
缓存 监控 NoSQL
Redis经典问题:缓存穿透
本文详细探讨了分布式系统和缓存应用中的经典问题——缓存穿透。缓存穿透是指用户请求的数据在缓存和数据库中都不存在,导致大量请求直接落到数据库上,可能引发数据库崩溃或性能下降。文章介绍了几种有效的解决方案,包括接口层增加校验、缓存空值、使用布隆过滤器、优化数据库查询以及加强监控报警机制。通过这些方法,可以有效缓解缓存穿透对系统的影响,提升系统的稳定性和性能。
|
3月前
|
缓存 NoSQL 关系型数据库
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
本文详解缓存雪崩、缓存穿透、缓存并发及缓存预热等问题,提供高可用解决方案,帮助你在大厂面试和实际工作中应对这些常见并发场景。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
|
2月前
|
缓存 物联网 数据库
InfluxDB vs TDengine :2025 年了,谁家用的数据库还不能高效读缓存?
在工业互联网和物联网的大数据应用场景中,实时数据的写入和查询性能至关重要。如何快速获取最新设备状态并实时处理数据,直接影响到业务的高效运转。本文将深入分析 TDengine 和 InfluxDB 在缓存机制上的差异,帮助读者更好地理解这两款主流时序数据库在性能优化方面的优劣。
184 1
|
3月前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
69 5

热门文章

最新文章