zoukankan      html  css  js  c++  java
  • redis 缓存过期和内存淘汰策略

    1.redis缓存过期

    redis 数据少可以设置超时时间  

    redis 数据多单单设置超时时间 还不够 需要进行全盘扫描 时间太久 所以需要另外机制 redis 淘汰策略

    2.内存淘汰策略

    • noeviction:返回错误,不会删除任何键值

    • allkeys-lru:使用LRU算法删除最近最少使用的键值

    • volatile-lru:使用LRU算法从设置了过期时间的键集合中删除最近最少使用的键值

    • allkeys-random:从所有key随机删除

    • volatile-random:从设置了过期时间的键的集合中随机删除

    • volatile-ttl:从设置了过期时间的键中删除剩余时间最短的键

    • volatile-lfu:从配置了过期时间的键中删除使用频率最少的键

    • allkeys-lfu:从所有键中删除使用频率最少的键

    有了上述两种 可以解决内存占满的情况

    缓存穿透情况

    请求一些不存在的数据 因为redis 不存在 所以经常查询数据库 

    解决缓存穿透的情况

    用redis的布隆过滤器 : 

    特点

    说不存在一定不存在 

    对布隆过滤器的理解 可以参考 这个博客

    https://www.cnblogs.com/xzqpy/p/12007020.html

    缓存击穿 && 缓存雪崩

    缓存击穿:redis这个数据刚好过期 还没来得及缓存 之后大量请求这个数据 

    缓存雪崩 :redis这批数据刚好同时过期 还没来得及缓存 之后大量请求这批数据 

    解决缓存击穿 && 缓存雪崩

    随机设置数据超时时间 不要用固定值

    设置了热点数据永不过期

  • 相关阅读:
    webpack小知识点
    什么叫做webpack模块
    vue插槽的使用
    如何使用在 React Router v4 中以编程的方式进行导航
    react小知识点集合
    vue小知识点
    react更好的实现操作
    HTTP 协议 Host 请求头的作用
    包管理工具安装问题
    对象的方法
  • 原文地址:https://www.cnblogs.com/xzqpy/p/14421936.html
Copyright © 2011-2022 走看看