美文网首页
常见的几种缓存问题

常见的几种缓存问题

作者: lfboo | 来源:发表于2021-09-15 21:05 被阅读0次

一,缓存穿透

描述

访问一个缓存和数据库都不存在的 key,此时会直接打到数据库上,并且查不到数据,没法写缓存,所以下一次同样会打到数据库上; 此时,缓存起不到作用,请求每次都会走到数据库,流量大时数据库可能会被打挂。此时缓存就好像被“穿透”了一样,起不到任何作用

解决方案
  1. 做相应鉴权,排除非法攻击的情况
  2. 缓存空值,从数据库取不到时,可以缓存null值或Optional

二,缓存击穿

描述

缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力

解决方案
  1. 加互斥锁
public Object getData(String key) throws InterruptedException {
    Object value = redis.get(key);
    // 缓存值过期
    if (value == null) {
        // lockRedis:专门用于加锁的redis;
        // "empty":加锁的值随便设置都可以
        if (lockRedis.set(key, "empty", "PX", lockExpire, "NX")) {
            try {
                // 查询数据库,并写到缓存,让其他线程可以直接走缓存
                value = getDataFromDb(key);
                redis.set(key, value, "PX", expire);
            } catch (Exception e) {
                // 异常处理
            } finally {
                // 释放锁
                lockRedis.delete(key);
            }
        } else {
            // sleep100ms后,进行重试
            Thread.sleep(100);
            return getData(key);
        }
    }
    return value;
}
  1. 设置热点数据永不过期

三,缓存雪崩

描述

大量的热点 key 设置了相同的过期时间,导在缓存在同一时刻全部失效,造成瞬时数据库请求量大、压力骤增,引起雪崩,甚至导致数据库被打挂; 缓存雪崩其实有点像“升级版的缓存击穿”,缓存击穿是一个热点 key,缓存雪崩是一组热点 key

解决方案
  1. 热点数据永不过期
  2. 过期时间打散
  3. 加互斥锁,同缓存击穿

相关文章

  • Android缓存浅析

    Android缓存浅析 By吴思博 1、引言 2、常见的几种缓存算法 3、Android缓存的机制 4、LruCa...

  • SPA优化

    常见的几种SPA优化方式: 减小入口文件体积(路由懒加载) 静态资源本地缓存(缓存,PWA:Service Wor...

  • Redis(六)-缓存方案-淘汰/过期

    概述 本节学习下Redis作为缓存时,几种常见的情形及其解决解决方案 1. 缓存淘汰 1. 缓存写满:为了保证较高...

  • 02 初识缓存-GuavaCache

    在上篇文章01 初识缓存-了解缓存中简单了介绍了下缓存的历程以及几种常见的技术进行简单介绍,本着学习的目的本节针对...

  • 缓存问题

    用了缓存之后,有哪些常见问题? 常见的问题,可列举如下: 写入问题 缓存何时写入?并且写时如何避免并发重复写入? ...

  • Redis缓存雪崩、缓存击穿、缓存穿透、缓存预热、缓存更新、缓存

    关于Redis常见问题:缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等概念的入门及简单解决方案。 一、缓存雪崩...

  • 缓存常见问题

    缓存穿透 含义 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,...

  • 缓存常见问题

    阿里一面:关于【缓存穿透、缓存击穿、缓存雪崩、热点数据失效】问题的解决方案 缓存穿透 缓存击穿 缓存雪崩

  • 缓存及缓存常见问题

    缓存:存储在计算机上一个原始数据复制集,以便于访问。 1 缓存优缺点 1.1 缓存优点:加速读写,降低后端负载。 ...

  • pip install 报错问题常用解决办法

    常见原因 权限问题 缓存问题 权限问题 缓存问题 幸运的话,通常就可以了,否则就...嘿.嘿..嘿...友情链接:...

网友评论

      本文标题:常见的几种缓存问题

      本文链接:https://www.haomeiwen.com/subject/myjdgltx.html