zoukankan      html  css  js  c++  java
  • Reids的缓存穿透和雪崩及解决方案

    1. 缓存穿透

    指redis内存数据库中没有,访问持久层获取数据的过程。

    解决方案:

    1. 布隆过滤器。将所有可能存在的数据哈希到一个足够大的bitap中,不存在的时候被这个bitmap拦截掉,从而避免了访问持久层的压力。

    2. 设置空值法,查询到的数据为空或者异常时,将这个数据的value设置为空放到redis中,下次就可以从缓存中取值了。

    2. 缓冲雪崩

    指某一个时间段,缓冲集中过期失效。

    解决方案:

    1. 延长缓存的失效时间

    2. 给每一个缓存数据增加相应的缓存标记,记录缓存是否失效。如果缓存失效,则更新数据缓存。

    3. 缓存预热

    系统启动的时候,将需要缓存的数据加载到缓存中

    4. 缓存更新

    1. 定时的清理过期的缓存。

    2. 请求时检查缓存是否过期,过期的话更新缓存。

    5. 缓存降级

    当访问量大的时候,可以通过一些方案,放弃一些数据的缓存机制,保证正常功能的缓存正常运行。

    6. 缓存热点key

      1. 互斥锁

      2. 永不过期

     

  • 相关阅读:
    HDU 5842 Lweb and String 【乱搞】
    POJ 2342 Anniversary party 【树形DP】
    [ZJOI2008]树的统计Count 【树链剖分】
    UVA 136 & POJ1338 Ugly Numbers
    ccf 201803-2
    ccf 201809-5
    ccf 201809-4
    ccf 201809-2
    ccf 201809-1
    最小费用可行流
  • 原文地址:https://www.cnblogs.com/baoyi/p/redis-error.html
Copyright © 2011-2022 走看看