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这批数据刚好同时过期 还没来得及缓存 之后大量请求这批数据 

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

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

    设置了热点数据永不过期

  • 相关阅读:
    C#练习记录(统计字符串中的字符数和计算最大值)
    C#练习记录(交换两个数)
    Cyberdebut's daily record_3
    SWJTU_LightMoon Training #16~20 补题
    zzh训练日志3
    SWJTU_LightMoon Training #11~15 补题
    Megumin's daily record3
    2017网络赛
    zzh的训练日志2
    Cyberdebut's daily record_2
  • 原文地址:https://www.cnblogs.com/xzqpy/p/14421936.html
Copyright © 2011-2022 走看看