其他

缓存

2022-09-14  本文已影响0人  格林哈

1 缓存基础

1 缓存的读写模式

1.1 Cache Aside(旁路缓存)

1.2 Read/Write Through(读写穿透)

1.3 Write Behind Caching(异步缓存写入)

1.4 好的db缓存方案

  1. 实时一致性方案

    • 采用“先写 MySQL,再删除 Redis”的策略,这种情况虽然也会存在两者不一致,但是需要满足的条件有点苛刻,所以是满足实时性条件下,能尽量满足一致性的最优解。
    • image.png
  2. 最终一致性方案

    • 采用“先写 MySQL,通过 Binlog,异步更新 Redis”,可以通过 Binlog,结合消息队列异步更新 Redis,是最终一致性的最优解。
    • 这种方案有个前提,查询的请求,不会回写 Redis。
    • image.png
  3. 先删除 Redis,再写 MySQL,再删除 Redis(负责方案不推荐) 缓存双删

    • image.png
    • “删除缓存 10”必须在“回写缓存10”后面,那如何才能保证一定是在后面呢?网上给出的第一个方案是,让请求 A 的最后一次删除,等待 500ms。完全不行。
    • image.png

3 缓存穿透,缓存击穿,缓存雪崩解决方案分析

可参考

1 缓存穿透

2 缓存雪崩

3 缓存击穿

4 如何保证缓存与数据库双写的一致性

5 缓存失效

6 如何设计一个动态缓存热点数据的策略

7 热key 问题

8 大key 问题

9 数据不一致

10 懒加载的缓存过期方案,性能毛刺 23讲搞定后台架构实战

11 数据并发竞争

4 常见系统设计

1 秒杀系统缓存解析

2 海量计数缓存解析

上一篇下一篇

猜你喜欢

热点阅读