redis - 12 企业级解决方案

1. 缓存预热(不是很懂)

2. 缓存雪崩

1. 原因
  大量数据同一时间失效,导致redis中没有该数据,服务端直接请求数据库,对数据库造成极大的压力,甚至崩溃
2. 解决方案
  从redis本身入手:
    a. 数据的有效期进行错开,不要设置同样的有效期
    b. 超热的数据使用永久key
    c. 对于即将过期的数据做访问量分析,对于热点数据进行延时(人工+脚本)
  从架构设计入手
    a. 多级缓存架构,nginx+redis+ehcache
    b. 对数据库进行性能优化
    c. 设置灾难预警机制,cpu,容量,查询时间等
    d. 高峰限流,损耗一定的用户体验,保护服务器

3. 缓存击穿

1. 单个key在redis中没有缓存或失效,当有大量的请求发过来的时候,都去请求数据库,导致数据库压力过大
2. 解决方案
    预防为主,提前考量

4. 缓存穿透

1. 访问一个根本不存在的数据,redis中肯定没有,所以要去数据库查,其实数据库也没有,但是会对数据库造成查询压力(一般是黑客攻击)
2. 解决方案
    a. 白名单过滤数据库不可能存在的数据
    b. 实时监控,然后人工对应

 

posted @ 2021-11-27 11:21  10132714  阅读(31)  评论(0编辑  收藏  举报