序章
- 项目代码
缓存的数据一致性
延时双删
- 淘汰缓存
- 写数据库
- 休眠1s,再次淘汰缓存
缺点:如果mysql是主从复制,去从库中拿去数据,此时同步数据还未完成,拿到的数据是旧数据。
先更新 DB,后删除缓存
- 采用异步延时删除策略. ①利用消息队列进行删除的补偿。②Mysql 数据库更新操作后
再 binlog 日志中我们都能够找到相应的操作,那么我们可以订阅 Mysql 数据库
的 binlog 日志对缓存进行操作。
商城项目的缓存实践
基础实现
tulingmall-portal,商城的首页入口服务。 为了保护数据库应对高并发,我们考虑首先将促销信息放入缓存,在tulingmall-promotion 的 HomePromotionServiceImpl.getHotProducts 。
tulingmall-portal 的 HomeServiceIm