zoukankan      html  css  js  c++  java
  • 缓存命中率基础知识

    缓存命中率

    命中:可以直接通过缓存获取到需要的数据。
    不命中:无法直接通过缓存获取到想要的数据,需要再次查询数据库或者执行其它的操作。原因可能是由于缓存中根本不存在,或者缓存已经过期。
    通常来讲,缓存的命中率越高则表示使用缓存的收益越高,应用的性能越好(响应时间越短、吞吐量越高),抗并发的能力越强。

    影响缓存命中率的因素

    缓存适合“读多写少”的业务场景。业务需求决定了对时效性的要求,直接影响到缓存的过期时间和更新策略。时效性要求越低,就越适合缓存。在相同key和相同请求数的情况下,缓存时间越长,命中率会越高。

    1、缓存的设计(粒度和策略)

    通常情况下,缓存的粒度越小,命中率会越高。此外,缓存的更新/过期策略也直接影响到缓存的命中率。当数据发生变化时,直接更新缓存的值会比移除缓存(或者让缓存过期)的命中率更高,当然,系统复杂度也会更高。

    2、缓存容量和基础设施

    缓存的容量有限,则容易引起缓存失效和被淘汰(目前多数的缓存框架或中间件都采用了LRU算法)。同时,缓存的技术选型也是至关重要的,比如采用应用内置的本地缓存就比较容易出现单机瓶颈,而采用分布式缓存则毕竟容易扩展。

    3、其他因素

    当缓存节点发生故障时,需要避免缓存失效并最大程度降低影响。业内比较典型的做法就是通过一致性Hash算法,或者通过节点冗余的方式。
  • 相关阅读:
    DOM-window下的常用子对象-location-刷新页面
    row_number over( partition by xx)
    linux openjdk安装
    ffmpeg直播系统
    flink 基本原理
    flink分层 api
    flink测试用例编写
    使用mybatis的动态sql解析能力生成sql
    大数据量显示问题
    vue使用日记
  • 原文地址:https://www.cnblogs.com/archermeng/p/7537079.html
Copyright © 2011-2022 走看看