美文网首页
缓存系统应用

缓存系统应用

作者: kar_joe | 来源:发表于2020-03-13 22:25 被阅读0次

    经典缓存设计方案

    CacheAside

    3.PNG

    优点:简单易于实现
    缺点:自己维护数据更新后的同步逻辑;对业务代码有侵入性

    Reade\Write Through

    4.PNG

    优点:把缓存和数据库看作一个整体,业务逻辑只需要读取和写入数据,不需要关心数据来源于缓存还是数据库,不需要维护同步逻辑
    缺点:需要自己封装好缓存和数据库的同步逻辑

    WriteBack

    writeback.PNG

    写入只更新缓存,异步同步到数据库
    优点:读写都是操作内存,性能高
    缺点:数据不是强一致性;宕机可能丢数据

    异步更新到缓存

    2.PNG

    优点:引入缓存后对原有系统改动较少;
    缺点:存在数据不一致性;没提升写性能

    常见问题及解决

    大并发场景下需要关注以下缓存使用问题

    缓存穿透

    高并发查询数据库与缓存都没有的key,可能是恶意攻击


    缓存穿透1.PNG

    解决办法:

    1. 给不存在的key,预先设置值,查询到之后应用决定放弃还是等待一段时间,避免打到数据库;
    2. 借助布隆过滤器

    缓存并发

    大量并发请求同时查询一个不在缓存的key,导致全打到数据库,查询到之后又都更新到缓存


    缓存并发.PNG

    解决办法:引入锁机制,只允许一个请求转发到数据库


    缓存并发解决PNG.PNG

    缓存雪崩

    大量缓存在同一时间同时失效,导致大量请求都打到数据库
    解决办法:失效时间随机;或者缓存不过期

    热点数据

    为提高命中率,按照访问频率以及访问时间对数据进行排序,优先保留使用频率高以及最近使用的数据


    热点数据.PNG

    总结

    总结.PNG

    相关文章

      网友评论

          本文标题:缓存系统应用

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