目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

大数据全系列 教程

1869个小节阅读:465.2k

收藏
全部开发者教程

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(254)
赞(0)

Redis企业级解决方案_缓存雪崩(选修)

image-20211224113958354

概念

缓存雪崩是指在我们设置缓存时采用了相同的过期时间,导致缓存在某一时刻同时失效,请求全部转发到DB,DB瞬时压力过重雪崩。

缓存正常从Redis中获取,示意图如下:

image-20211227100922918

缓存失效瞬间示意图如下:

image-20211227101009468

解决方案

  • 过期时间打散:既然是大量缓存集中失效,那最容易想到就是让他们不集中生效。可以给缓存的过期时间时加上一个随机值时间,使得每个 key 的过期时间分布开来,不会集中在同一时刻失效。
  • 热点数据不过期:该方式和缓存击穿一样,也是要着重考虑刷新的时间间隔和数据异常如何处理的情况。
  • 加互斥锁: 该方式和缓存击穿一样,按 key 维度加锁,对于同一个 key,只允许一个线程去计算,其他线程原地阻塞等待第一个线程的计算结果,然后直接走缓存即可。

加锁排队代码如下:

注意:

加锁排队只是为了减轻数据库的压力,并没有提高系统吞吐量。

实时学习反馈

1.Redis技术中缓存雪崩指____问题。

A 缓存和数据库中都没有的数据

B 缓存冷启动

C 缓存中没有但数据库中有的数据

D 缓存中数据大批量到过期时间

2.Redis技术中缓存雪崩____解决。

A 布隆过滤器

B 对空值缓存

C 加锁

D 缓存数据的过期时间设置随机

答案

1=>D 2=>D

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2