Redis和数据库的同等性(Canal+MQ)

打印 上一主题 下一主题

主题 998|帖子 998|积分 2994

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想要包管缓存与数据库的双写同等,一共有4种方式,即4种同步计谋:
  

  • 先更新缓存,再更新数据库;
  • 先更新数据库,再更新缓存;
  • 先删除缓存,再更新数据库;
  • 先更新数据库,再删除缓存
  首先说好结论,这4种同步计谋无论是哪一种,都无法包管数据库和redis的强同等性,只能包管最终同等性,如要包管强同等,那么只能通过加锁来实现,那么就会造成性能题目,即CAP理论中的AP(强同等)和CP(高可用性)举行取舍,绝大多数场景是确保高可用(CP)。 

更新缓存还是删除缓存 
下面,我们来分析一下,应该接纳更新缓存还是删除缓存的方式。
1 更新缓存
长处:每次数据变化都及时更新缓存,所以查询时不容易出现未命中的情况。
缺点:更新缓存的消耗比较大。假如数据需要颠末复杂的盘算再写入缓存,那么频仍的更新缓存,就会影响服务器的性能。假如是写入数据频仍的业务场景,那么可能频仍的更新缓存时,却没有业务读取该数据。
2 删除缓存
长处:操作简单,无论更新操作是否复杂,都是将缓存中的数据直接删除。
缺点:删除缓存后,下一次查询缓存会出现未命中,这时需要重新读取一次数据库。从上面的比较来看,一般情况下,删除缓存是更优的方案。

先操作数据库还是更新缓存
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美丽的神话

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表