23 | 旁路缓存:Redis是如何工作的?

532 阅读2分钟

基本概念

  • 缓存的作用

    • 提升业务响应的速度
    • 避免高并发压力发送到数据库层
  • 关键问题

    • redis缓存是怎么工作的
    • redis缓存满了怎么办
    • 缓存一致性、缓存穿透、缓存雪崩、缓存击穿等异常,该如何应对?
    • redis可以使用固态硬盘吗?\

缓存的特征

  • 为什么需要缓存

    • 计算机每层间访问速度不一样,需要通过缓存提升处理速度
    • 每当数据命中缓存时,总是可以获取数据
    • 只能缓存部分数据,缓存容量有限  需要不停的淘汰数据 
  • cpu中的缓存

    • cpu末级缓存即LLC,缓存内存中数据,避免每次从内存中存取数据
    • 内存中的高速页缓存,page cache,缓存磁盘数据,避免每次从磁盘获取

redis缓存处理请求的两种情况

  • 缓存命中:有对应数据,直接读取Redis,性能非常快

  • 缓存缺失:

    • 从数据库获取数据
    • 将缺失数据写入Redis

redis作为旁路缓存的使用操作

  • 什么是旁路缓存

    • 读取缓存、读取数据库和更新缓存的操作都需要在应用程序中来完成(不是直接通过redis 客户端完成)
    • 需要在代码中增加显式操作
    • 码已经没有再维护了,或者是第三方供应商开发的应用,没有提供源码,所以,我们就没有办法在这些应用中进行缓存操作

缓存的类型

  • 只读缓存

    • 加速读请求

    • 如果有删除数据库操作,则删除缓存

    • 举个栗子:

      • 图片
      • 短视频
      • ...
  • 读写缓存

    • 加速读写请求,对缓存执行写操作 但是最新的数据在缓存中,掉电会导致数据丢失

    • 写的方式

      • 同步写回策略\

        • 写操作会同时对缓存和数据库进行,等到都写完数据后才给客户端返回
        • 增加响应延迟
      • 异步写回策略

        • 写写入缓存中,当他们被缓存淘汰后,将数据写会数据库
        • 但是掉电会导致数据丢失

总结

  • 缓存的两个特征

    • 加速访问
    • 容量邮箱
  • Redis 作为旁路缓存

  • redis缓存模式

    • 只读缓存

    • 读写缓存

      • 同步
      • 异步

\