缓存的问题
-
缓存雪崩(大量数据集中过期);
-
缓存击穿(热点数据过期);
-
缓存穿透(缓存和数据中都不存在该数据)
缓存淘汰
volatile-random,volatile-ttl,volatile-lru,volatile-lfu
allkeys-random,allkeys-lru,allkeys-lfu
读写缓存
-
同步直写: 写redis,同时也写数据库;
-
异步写回:先写redis,然后等redis淘汰数据时,同步写回数据到数据库中。
三个经典的缓存模式
-
Cache-Aside Pattern: 旁路缓存模式
-
Read-Through/Write-through
-
Write-behind
1. Cache-Aside Pattern
Cache-Aside读流程
读请求
命中缓存 - 返回
没命中 - 读数据 - 更新缓存 - 返回
Cache-Aside 写流程
写请求
更新数据库 - 删除旧缓存
2. Read-Through/Write-Through(读写穿透)
Read-Through: 通过缓存抽象层Cache-Provider来操作读<