缓存的常见套路
缓存的几种模式
在高并发场景下,缓存在数据库前面挡住了大量的查询流量,减轻了数据库的压力。对于缓存的更新,通常有以下几种模式:
模式 | 优点 | 缺点 |
---|---|---|
Cache Aside | 1. 实现简单 | 1. 需要调用方维护缓存和数据库的更新逻 2. 代码侵入性大 |
Read/Write Through | 1. 引入缓存管理组件,缓存和数据库的维护对应用方是透明的 2. 应用代码侵入性小,逻辑清洗 | 1. 引入缓存管理组件,实现复杂 |
Write Behind Caching | 1. 读写直接与缓存打交道,异步批量更新数据库,性能最好 2. 缓存和数据库的维护对应用方是透明的 | 1. 实现最复杂 2. 存在数据丢失风险 3. 一致性最弱 |
Cache Aside Pattern
这种模式应用最为广泛,其逻辑如下:
- 读过程:先读缓存,若命中则返回;否则从数据库中查询数据,写入缓存并返回
- 写过程:先更新数据库,然后让缓存失效