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