首页 > 数据库 >Redis缓存雪崩

Redis缓存雪崩

时间:2022-12-02 10:01:31浏览次数:50  
标签:缓存 过期 数据库 Redis 查询 雪崩 数据 查不到


缓存处理流程

接收到查询数据请求时,优先从缓存中查询,若缓存中有数据,则直接返回,若缓存中查不到则从DB中查询,将查询的结果更新到缓存中,并返回查询结果,若DB中查不到,则返回空数据

Redis缓存雪崩_数据库

什么是缓存雪崩

缓存中大批量的数据都到了过期时间,从而导致查询数据量巨大,引起数据库压力过大甚至down机。和缓存击穿不同,缓存击穿是指某一条数据到了过期时间,大量的并发请求都来查询这一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。

解决方案:

  • 设置热点数据永不过期
  • 缓存数据的过期时间设置随机,可以在原有的过期时间上加上一个随机值,比如1-3min,防止同一时间大量缓存数据集体失效,导致数据库压力过大。
  • 如果是分布式部署缓存数据库,可将热点数据分别存放到不同的缓存数据库中,避免某一点由于压力过大而down掉。


标签:缓存,过期,数据库,Redis,查询,雪崩,数据,查不到
From: https://blog.51cto.com/u_11295556/5905022

相关文章

  • 基于Redis的Stream结构作为消息队列,实现异步秒杀下单
    需求:创建一个Stream类型的消息队列,名为stream.orders修改之前的秒杀下单Lua脚本,在认定有抢购资格后,直接向stream.orders中添加消息,内容包含voucherId、userId、order......
  • Redis消息队列
    什么是消息队列:字面意思就是存放消息的队列。最简单的消息队列模型包括3个角色:消息队列:存储和管理消息,也被称为消息代理(MessageBroker)生产者:发送消息到消息队列......
  • mybatis缓存
    mybatis缓存原理假设第一次向数据库发送查询请求,把返回的数据存在缓存里,mybatis缓存使用hashmap来存储数据,到第二次查询的时候,先到缓存里面查找有无这条数据,如果做......
  • SpringCloud (五) - 云服务器Centos7.6,安装JDK,Maven,Mysql,Redis
    1、购买云服务器购买地址:https://cloud.tencent.com/act/pro/2022double11_warmup后面的环境都是基于此环境Centos7.6;2、安装SecureCRT和SecureFX2.1SecureCRT教......
  • 12_缓存
    12.缓存12.1简介查询:连接数据库,耗资源 一次查询的结果,给他放在一个可以直接取到的地方!-->内存:缓存 我们再次查询相同的数据的时候。直接通过缓存查询,不用通过数据库......
  • 面试题系列:Redis 夺命连环11问
      1.说说Redis基本数据类型有哪些吧 1.字符串:redis没有直接使用C语言传统的字符串表示,而是自己实现的叫做简单动态字符串SDS的抽象类型。C语言的字符串不记录自......
  • Redis 集群
    Redis集群作用容量不够,redis如何进行扩容并发写操作,redis如何分摊都可使用集群解决。介绍Redis集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分......
  • SpringBoot(七) - Redis 缓存
    1、五大基本数据类型和操作1.1字符串-string命令说明setkeyvalue如果key还没有,那就可以添加,如果key已经存在了,那会覆盖原有key的值getkey如果key还没有,......
  • Debian 11 安装 redis 5.0
    安装命令sudoaptinstallredis-server安装后检查Redis服务状态sudosystemctlstatusredis-serverRedis的主要配置文件位于 /etc/redis/redis.conf重启red......
  • 分布式锁-redission锁重试和WatchDog机制
    抢锁过程中,获得当前线程,通过tryAcquire进行抢锁,该抢锁逻辑和之前逻辑相同1、先判断当前这把锁是否存在,如果不存在,插入一把锁,返回null2、判断当前这把锁是否是属于当前线......