zoukankan      html  css  js  c++  java
  • Redis缓存

    使用Redis不得不考虑缓存的问题,处理不好的话会被黑客利用从而导致缓存击穿、缓存穿透、缓存雪崩等问题

    场景如下图:

    缓存击穿:一个已经存在的key,当访问量过大的时候,有部分请求可能会绕过缓存直接请求DB,从而导致DB请求量变高,压力增大

    解决方案:可以在请求key之前,使用setNx加锁,设置一定的过期时间,过期之前的其他请求直接返回

    (其他方案:1、使用互斥锁,2、使用布隆过滤器,3、使用异步构建缓存,参考:https://blog.csdn.net/hjm4702192/article/details/80518952)

    缓存穿透:访问一个不存在的key,缓存就起不到任何作用,请求会直接请求DB,导致DB请求量剧增,从而挂掉

    解决方案:使用布隆过滤器,存储存在的key,当不存在的key请求时,把不存在的key直接过滤掉,直接返回

    缓存雪崩:大量的请求访问时,key都不存在,导致缓存都起不到作用,这个时候就会造成缓存雪崩

    解决方案:存储key的时候额外加上一些随机的时间,避免导致大量的key在同一时间失效导致缓存雪崩

  • 相关阅读:
    组件定义
    序列化代码
    Views 代码 导包
    DRF 初始化
    Urls 代码
    怎么用sublime text 3搭建python 的ide
    C语言位运算
    ZOJ 1104 Leaps Tall Buildings
    UVa 10739 String to Palindrome
    ZOJ 3563 Alice's Sequence II
  • 原文地址:https://www.cnblogs.com/lyc94620/p/9995677.html
Copyright © 2011-2022 走看看