美文网首页
Redis与缓存相关问题

Redis与缓存相关问题

作者: 蓝色猫猫 | 来源:发表于2022-07-19 19:15 被阅读0次

    缓存穿透

    场景:用户查询数据库中没有的数据,这样不论如何都不会写入缓存,请求量一大对数据库也不是很友好
    解决方法:

    1. 缓存无效Key
    2. 布隆过滤器

    缓存雪崩

    场景:并发量很大的情况下,大量数据同时过期,在那一瞬间,数据库压力暴增
    解决方案:

    1. 在过期时间基础上添加随机数
    2. 设置数据永不过期,新开一个线程完成更新

    缓存击穿

    场景:某个访问量极大的数据,在过期瞬间,所有访问量打进数据库,给数据库造成极大压力
    解决方案:

    1. 设置数据永不过期,新开一个线程完成更新
    2. 对大量的访问线程进行阻塞拦截,只放一个线程与数据库进行交互,并写入缓存中

    缓存与数据库一致性问题

    如何保证缓存与数据库的一致性?

    1. 先操作缓存,将缓存缓存特殊值,当用户查到特殊值时则进入休眠,但是对业务有入侵性;
    2. 延迟双删:先删缓存,再写数据库,再删缓存
    3. 先写数据库再删缓存
    4. 逻辑上设置过期时间,另开线程刷新缓存,删除逻辑上过期的key

    相关文章

      网友评论

          本文标题:Redis与缓存相关问题

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