## 一、数据丢失

1、持久化丢失 RDB 有时间区间的丢失,aof默认会有1s, 除非配置always 2、淘汰策略 3、主从切换(主从同步都是异步操作的) 4、sentinel脑裂(当发生分区容错时,因为网络问题,会有两个master)

二、Redis和DB的数据一致性

丢失场景:

并发情况 线程t1 取缓存key 获取不到,取DB值1; 线程t2 将1更新2,删除缓存,DB的值为2; 线程t1 更新缓存key 为1

最终redis 1 db 2

产生原因:

并发情况 DB操作和redis 的操作并非原子性。

缓存依赖:

DB数据变更时,缓存也要随之变更,所以需要缓存依赖。