redis如何与mysql数据保持一致?
- 同步双写:cache aside pattern,读:先读缓存再读数据库,一个缓存的过期时间,实现起来简单好用极限情况还会有数据不一致的风险。CAP定理:c一致性a可用性p分区容错性,cp或者是ap
- 异步双写:基于消息队列实现,写:生产者:先更新数据库,向队列发消息,消费者:监听消息,收到消息更新缓存,解耦,弱耦合基于
- binLog:caneL优点:完全解耦,缺点:门槛高,废程序员,监听binlog,解析变更数据,写入redis。
- 延迟双删:删除缓存更新数据库隔一段时间Thread.sLeep(5ooo)删除缓存,停留在理论上不实用。