使用缓存保护MySQL

50 阅读1分钟

更新缓存的最佳方式

数据库可以分为执行器和存储引擎两部分,Redis 的执行器这一层非常的薄,所以 Redis 只能支持有限的几个 API,几乎没有聚合查询的能力,也不支持 SQL。它的存储引擎也非常简单,直接在内存中用最简单的数据结构来保存数据,你从它的 API 中的数据类型基本就可以猜出存储引擎中数据结构。

Cache Aside 模式和Read/Write Through 模式非常像,它们处理读请求的逻辑是完全一样的,唯一的一个小差别就是,Cache Aside 模式在更新数据的时候,并不去尝试更新缓存,而是去删除缓存。使用 Cache Aside 模式来更新缓存,可以非常有效地避免并发读写导致的脏数据问题。

Cache Aside读请求: image.png

Cache Aside写请求: image.png

缓存穿透

缓存穿透指的是,在读数据的时候,没有命中缓存,请求“穿透”了缓存,直接访问后端数据库的情况。需要预防短期大量请求无法命中缓存。

系统初始化的时候,灰度发布,先接入少量请求,再逐步增加系统的请求数量,直至流量全部切换完毕。如果不能灰度发布,可以先预热缓存,把经常会访问的数据先初始化到缓存中。


此文章为3月Day11学习笔记,内容来源于极客时间《后端存储实战课》