<legend id='hnp65o2z'><style id='kweufq5b'><dir id='m19xwvs1'><q id='jzvaybvx'></q></dir></style></legend>

    <small id='t1is3ccr'></small><noframes id='z8lw1ckm'>

      <tbody id='nrt0jqk6'></tbody>
    <i id='7m8cnh7c'><tr id='hmbo6w5c'><dt id='uggbj2rm'><q id='1x999b9t'><span id='rljad9ht'><b id='s9jg9wlw'><form id='y6s5m70t'><ins id='dky5t040'></ins><ul id='3iukqvjr'></ul><sub id='3i4dpy1g'></sub></form><legend id='medr28an'></legend><bdo id='g5j9x0yr'><pre id='ahligmwu'><center id='pu3d41d8'></center></pre></bdo></b><th id='rcx5eree'></th></span></q></dt></tr></i><div id='74iyirc8'><tfoot id='gjd0xe5x'></tfoot><dl id='pn501p0l'><fieldset id='aceev7bg'></fieldset></dl></div>

    1. <tfoot id='koubmfr5'></tfoot>

      网站建设公司当前位置 : 网站建设公司 > 知识普及

      软件开发缓存策略包含哪些内容

      发布时间:2021-08-19 11:37   浏览次数:次   

      缓存策略是程序员在开发软件的时候会经常用到的一个开发策略,下面我们就通过案例分析来了解一下,软件开发缓存策略包含哪些内容。过期策略

      过期的实现里,往往每个数据项拥有不同的过期时间。因为容量的限制,过期后数据需要被懒淘汰,否则这些已过期的脏数据会污染到整个缓存。一般缓存中会启用专有的清扫线程周期性的遍历清理缓存。这个策略相比在每次读写操作时按照过期时间排序的优先队列来清理过期缓存要好,因为后台线程隐藏了的过期数据清除的时间开销。

      鉴于大多数场景里不同数据项使用的都是固定的过期时长,Caffien采用了统一过期时间的方式。这个限制让用O(1)的有序队列组织数据成为可能。针对数据的写后过期,维护了一个写入顺序队列,针对读后过期,维护了一个读取顺序队列。缓存能复用驱逐策略下的队列以及下面将要介绍的并发机制,让过期的数据项在缓存的维护阶段被抛弃掉。

      并发

      由于在大多数的缓存策略中,数据的读取都会伴随对缓存状态的写操作,并发的缓存读取被视为一个难点问题。传统的解决方式是用同步锁。这可以通过将缓存的数据划成多个分区来进行锁拆分优化。不幸的是热点数据所持有的锁会比其他数据更常的被占有,在这种场景下锁拆分的性能提升也就没那么好了。当单个锁的竞争成为瓶颈后,接下来的的优化方式是只更新单个数据的元数据信息,以及使用随机采样、基于FIFO的驱逐策略来减少数据操作。这些策略会带来高性能的读和低性能的写,同时在选择驱逐对象时也比较困难。

       
       

      <i id='ixzfv10j'><tr id='6n8ammaz'><dt id='btbf83bl'><q id='2kwek0oq'><span id='rw5yxcac'><b id='f8vik4qt'><form id='3y7oyjfc'><ins id='hizm3t8u'></ins><ul id='qxuqvgiw'></ul><sub id='4poqs4ul'></sub></form><legend id='9pxjcit4'></legend><bdo id='7adt3ekk'><pre id='5tnty2ay'><center id='n20ahc9h'></center></pre></bdo></b><th id='x8x1wq7s'></th></span></q></dt></tr></i><div id='8xdu9r0c'><tfoot id='boz8nrt0'></tfoot><dl id='t5s0fdwr'><fieldset id='nuy1hyao'></fieldset></dl></div>

      • <legend id='7k8f4d6r'><style id='bqectya5'><dir id='hxmg368y'><q id='b6we6jq9'></q></dir></style></legend>

          <small id='sx8j4mtq'></small><noframes id='o0j5040y'>

            <tbody id='hgyozo0k'></tbody>
          <tfoot id='i64mzrjh'></tfoot>

            本文来源于网络,若有侵权请联系3449817223#qq.com,将在第一时间删除。

            上一篇:App软件开发的策略方案 小程序开发上一篇
            下一篇公众号开发下一篇:软件开发的未来发展趋势
          • <small id='om2v4t77'></small><noframes id='loq2sj1k'>

            1. <i id='c8i4qt0d'><tr id='q2xnpscj'><dt id='iwc2u50b'><q id='9uhda8h5'><span id='xouv54fl'><b id='wv2ndzcv'><form id='gdjoks99'><ins id='vh00ju6m'></ins><ul id='ksegxhdw'></ul><sub id='k3vowmvv'></sub></form><legend id='ekskkr1a'></legend><bdo id='80wu4jnk'><pre id='2pkfl6aq'><center id='gsj0x12g'></center></pre></bdo></b><th id='tdulf90z'></th></span></q></dt></tr></i><div id='hrml5fj1'><tfoot id='y6zyx550'></tfoot><dl id='bfj8q8gw'><fieldset id='lyns40il'></fieldset></dl></div>
                <legend id='4exql17y'><style id='5ek38goi'><dir id='uhuqh7yt'><q id='n9ucv8su'></q></dir></style></legend>

                  <tbody id='tltmdv51'></tbody>
                <tfoot id='9ufqvknp'></tfoot>