简介
本文介绍如何保证Redis缓存与数据库的数据一致性。
问题由来
缓存流程如下:
缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存;又或者是先删除缓存,再更新数据库呢?也就是说如何保证双写一致性呢?
本文不适合秒杀的情况。秒杀一般是如此设计的:把数据库中的库存数据转移到Redis缓存中,所有读写操作(比如:查库存、减库存)都在Redis中进行,然后再通过定时任务把Redis中的用户秒杀的数据同步到数据库中。
方案1:先更新数据库,再更新缓存(不建议)
这套方案,大家是普遍反对的。为什么呢?有如下两点原因。
此内容仅限VIP查看,请先登录
请先
!