Redis学习16:企业解决方案之缓存预热、缓存雪崩、缓存击穿、缓存穿透、性能指标监控等

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 服务器宕机的问题排查

缓存预热


服务器宕机的问题排查:

bf5dd6cfaa49ea3eab8cf94a58f4f5f4_325bac28751740fd8f2b8199cbc1f6c8.png

ca1b7e8bedfe8b387dbfd85eb52da689_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_14,color_FFFFFF,t_70,g_se,x_16.png

37dc90d31ed93e62e9ca5be06eaef7d6_86b3a8c5a2904fc79d75ab62a49349d5.png


缓存雪崩


84c92f2e4ab45c51293a97fd7e2f2b9f_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_10,color_FFFFFF,t_70,g_se,x_16.png

6d665af1ff90a667065dc9f0954cd4a9_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_16,color_FFFFFF,t_70,g_se,x_16.png

22ad599b6f0bd01bb9896243872888d6_3e6bfd90da3a4818aa5c2847a2f4dfbe.png

3975d4db66a6797560b91582dfeda7cd_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_20,color_FFFFFF,t_70,g_se,x_16.png

418508965024129c1cbac030cd3b2850_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_16,color_FFFFFF,t_70,g_se,x_16.png096611ec9ddfc85fcf89263fe9d9bba1_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_20,color_FFFFFF,t_70,g_se,x_16.png

4fc5aa27c88226fa77560384f2306f71_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_20,color_FFFFFF,t_70,g_se,x_16.png

就是类似redis没有,全部挤在mysql访问了。

缓存击穿


be49d73fcc230da1162e1256fbafdd3c_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_9,color_FFFFFF,t_70,g_se,x_16.png

7a02e80fd471f63e76d331ac24ad6857_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_13,color_FFFFFF,t_70,g_se,x_16.png

d3f9339091f9426f2e534d7150ac74aa_050db89ee3484bf8afebe0b2173186ef.png


不是高热不会发生这个状况的。

cedb1bfc6e3e58f6722509c8c5874a04_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_19,color_FFFFFF,t_70,g_se,x_16.png


加锁,操作完一个走一个,这样就不会从一个key击穿整个redis。

加锁是没有办法的办法了。

b4aaab6cd1a0db9f07046563443cd398_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_20,color_FFFFFF,t_70,g_se,x_16.png

缓存穿透


1054040ea345eda7b643366845988817_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_9,color_FFFFFF,t_70,g_se,x_16.png

d470c64ed863018e386777eec0b69bc2_f7613492a1d84c72be4c1a547043934f.png

535a8c85a196a74c062543c16e2ae5c8_a7c9011ca8654960881bf089a4b82385.png

也就是大量的url无效访问,然后整崩数据库。

把服务器拖垮了。攻击没有的数据。

38c6ab603824626951999ecad588fd0c_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_20,color_FFFFFF,t_70,g_se,x_16.png

如果同时来几十万个请求,那缓存null就不太合适了,不可能建立几十万个null,内存泄漏了。

这种方法应对一些比较low的方法就好了。

布隆过滤器有个命中的问题。但是会并不考虑这个小误差。

03f465d4fed0006c4418de5f49a19c52_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_20,color_FFFFFF,t_70,g_se,x_16.png

性能指标监控


038dcac967b81a05859fbe933ea58c6f_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_7,color_FFFFFF,t_70,g_se,x_16.png

相关实践学习
基于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
相关文章
|
30天前
|
缓存 NoSQL Java
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
这篇文章是关于如何在SpringBoot应用中整合Redis并处理分布式场景下的缓存问题,包括缓存穿透、缓存雪崩和缓存击穿。文章详细讨论了在分布式情况下如何添加分布式锁来解决缓存击穿问题,提供了加锁和解锁的实现过程,并展示了使用JMeter进行压力测试来验证锁机制有效性的方法。
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
|
16天前
|
存储 缓存 NoSQL
Redis中大Key与热Key的解决方案
在工作中,Redis作为一款高性能缓存数据库被广泛应用,但常遇到“大key”和“热key”问题。“大key”指单个键包含大量数据,导致内存消耗高、性能下降及持久化效率降低;“热key”则是频繁访问的键,会引起CPU占用率高、请求阻塞等问题。本文详细分析了这些问题的定义、影响、原因,并提供了相应的解决方案,如合理设置缓存时间和数据结构、拆分大key、采用热点数据分片等方法。
Redis中大Key与热Key的解决方案
消息中间件 缓存 监控
18 0
|
30天前
|
缓存 NoSQL Java
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解、如何添加锁解决缓存击穿问题?分布式情况下如何添加分布式锁
这篇文章介绍了如何在SpringBoot项目中整合Redis,并探讨了缓存穿透、缓存雪崩和缓存击穿的问题以及解决方法。文章还提供了解决缓存击穿问题的加锁示例代码,包括存在问题和问题解决后的版本,并指出了本地锁在分布式情况下的局限性,引出了分布式锁的概念。
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解、如何添加锁解决缓存击穿问题?分布式情况下如何添加分布式锁
|
1月前
|
缓存 数据库
缓存穿透和击穿
【8月更文挑战第16天】
33 0
缓存穿透和击穿
|
1月前
|
缓存 NoSQL Redis
一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
这篇文章是关于Java面试中可能会遇到的五个问题,包括MySQL索引类型及其对数据库性能的影响、Redis的RDB和AOF持久化机制、Redis的过期键删除策略、Redis的单线程模型为何高效,以及缓存雪崩、缓存穿透和缓存击穿的概念及其解决方案。
|
25天前
|
缓存 监控 NoSQL
【Azure Redis 缓存】Redis的监控方式? 是否有API接口调用来获取监控值
【Azure Redis 缓存】Redis的监控方式? 是否有API接口调用来获取监控值
|
1月前
|
存储 缓存 NoSQL
基于SpringBoot+Redis解决缓存与数据库一致性、缓存穿透、缓存雪崩、缓存击穿问题
这篇文章讨论了在使用SpringBoot和Redis时如何解决缓存与数据库一致性问题、缓存穿透、缓存雪崩和缓存击穿问题,并提供了相应的解决策略和示例代码。
53 0
|
2月前
|
存储 缓存 监控
Redis问题之如何使用Guava Cache来监控缓存的加载/命中情况
Redis问题之如何使用Guava Cache来监控缓存的加载/命中情况
|
2月前
|
缓存 数据库
高并发架构设计三大利器:缓存、限流和降级问题之应对缓存击穿问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之应对缓存击穿问题如何解决