背景
在高并发的业务场景下, 数据库的性能瓶颈往往是用户并发访问过大造成的, 所以会有个 Redis 做个缓冲.
case
一, A 写, B 读,
写: 1. 淘汰 cache 2. 写操作 (由于各种原因消耗了 1s) 3. 更新 cache
读: 1. 读 cache 2. 读 DB 3 更新 cache
在成功写入之前就读取了, 会导致读取到脏数据, cache 不是最新的数据
二, 主从分离
同理, 在有主从延迟这个过程中, 会让读操作读取到脏数据
解决:
1. 淘汰机制, 每次写入一个数据后, 隔几秒去淘汰一次缓存
2.binlog,Redis 根据 binlog 中的记录对 Redis 进行更新
来源: http://www.bubuko.com/infodetail-3501370.html