Redis总结

Redis

一、优势

1. 业务角度

  • 加快请求效率

    • 提升了使用体验

2. 技术角度

  • 减轻服务器、数据库压力
  • 提升系统性能

二、劣势

1. 硬件成本增加

2. 维护成本增加

  • 缓存失效

    • 缓存穿透

      • 缓存穿透是指缓存和数据库都没有的数据,而用户不断发起请求

          1. 接口层增加校验,如用户鉴权,id做基础校验,id<0的直接拦截
          1. 从缓存取不到的数据,在数据库中也没有取到,这时也可以将key-value 写为 key-null,缓存有效时间可以设置短点
          1. 布隆过滤器
    • 缓存击穿

      • 缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,有同事去数据库去取数据,引起数据库压力瞬间增大,造成过大压力

          1. 设置热点数据永吧过期;
          1. 加互斥锁
          • 延伸:互斥锁参考方案
    • 缓存雪崩

      • 当某一个时刻出现大规模的缓存失效的情况,那么就会导致大量的请求直接打在数据库上面,导致数据库压力巨大,如果在高并发的情况下,可能瞬间就会导致数据库宕机。这时候如果运维马上又重启数据库,马上又会有新的流量把数据库打死。这就是缓存雪崩。
  • 缓存与数据库同步

    • 常规写法

      • 先删数据库再更新缓存
      • 先删缓存再更新数据库
    • 延时双删

      • 加互斥锁

延时双删 & 延时双删+互斥锁 对比图

image.png

你可能感兴趣的:(Redis总结)