美文网首页
缓存思想

缓存思想

作者: minfily | 来源:发表于2020-05-21 19:29 被阅读0次

    [toc]

    图来自:https://xie.infoq.cn/article/49947a60376964f1c16369a8b

    思想不是落地方案

    这里探讨的缓存是缓存思想,广义的缓存模式,不是在某个技术点或者是框架中的应用。但是一般框架和技术点也会根据广义的缓存模式来做缓存设计,所以每种模式又都有很多现实实现;

    缓存的一些分类

    缓存从广义上分类:
    1.cache-aside(缓存在一边)
    在缓存找到数据,称之为缓存命中,没找到数据为缓存未命中;
    2.read-through-cache (通过缓存读取数据)
    3.write-through-cache (通过缓存写数据)
    4.write-around (直写数据)
    5.write-back (多次写入缓存再一次写目标库)

    缓存分类详情

    1.cache-aside(缓存在一边)
    在缓存找到数据,称之为缓存命中,没找到数据为缓存未命中;
    缓存中找到数据,直接返回;缓存中未找到会到库中查询,并将查询到数据存到缓存中;
    技:http缓存处理,webview缓存处理,图片缓存处理,token鉴权很多方面都在使用缓存命中策略;

    cache-aside

    2.read-through-cache (通过缓存读取数据)
    数据每次都到缓存中获取,缓存中未匹配时从库中拿数据,给到缓存然后再从缓存返回;
    技:nexus的私有库逻辑(每次是到缓存中拿,缓存中没有会自动到网上同步)

    read-through-cache

    3.write-through-cache (通过缓存写数据)
    数据的写入都先写到缓存区,缓存区再同步给库中;
    技:mmkv的存取策略(用户端只关注写入缓存中,会由操作系统将数据同步到文件中;)

    write-through-cache
    read-through-cache 缓存读和write-through-cache缓存写配合起来做可以很方便的解决缓存不一致的问题
    
    read-through-cache + write-through-cache

    4.write-around (直写数据)
    数据的写入,每次都是直接操作库,不做缓存;
    技:系统中直接读取、操作文件

    write-around

    一般缓存命中cache-aside的读策略,适合和write-around直写数据库策略来配合;
    如果配合write-through-cache缓存写入的话,会产生问题;
    在读未命中缓存的时候,同时进行缓存写的话会产生覆盖缓存中数据的问题;

    cache-aside +write-around

    5.write-back (多次写入缓存再一次写目标库)
    write-through-cache的改良款,主要针对于多次小规模的写操作先多次写入缓存区;再通过合适时机写入到库中;
    技:mysql数据的写操作;

    write-back

    相关文章

      网友评论

          本文标题:缓存思想

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