redis数据不一致问题 秒杀过程中怎么保证redis缓存和数据库的一致性?
秒杀过程中怎么保证redis缓存和数据库的一致性?
如果要“保证”数据的安全性,会带来开销的进一步提高,从而失去使用redis带来的性能优势。
正确的方法是区分不同的服务,这样当不需要“保证”数据一致性时,就可以使用redis优化。MySQL仍然在敏感场合使用。
Redis缓存怎么与数据库进行数据同步?
这种writer-reader体系结构的总体思想是,writer将在缓存更新阶段解决一致性问题。当数据库数据发生变化时,redis会同步更新,以保证缓存更新的成功。作为完整性判断,您可以使用自递增的版本号(或时间戳)来判断数据是否是最新的,而无需检查所有属性。作为后检测,可以对其进行优化以降低扫描成本。例如,只应使用最新时间段(如10分钟)内的更新数据。这一套应该相对较小,在redis中的检查成本相对较低。
有些“上古”程序员一直坚持反对使用redis怎么办?
分享大人物的答案似乎合情合理。
不要告诉我们是否使用redis。你必须告诉我们你为什么要使用redis。没有redis的业务怎么了?世界上没有免费的午餐。如果不直接使用头部缓存/NoSQL,可能会带来越来越严重的问题。
单个数据库的最大优点是易于实现事务,并由数据库本身保证。举个简单的例子,要下订单,需要扣除库存并插入订单条目。如果inventory和order都是数据库表条目,那么这个事务是无可挑剔的。如果库存在redis中,订单条目是mysql,通常需要先写redis,成功后再写数据库。如果您写数据库失败,需要回滚redis,如果由于网络或其他原因回滚失败,将再扣减一个存货。不要认为这些事情很容易解决。事务处理的复杂性远远超出您的想象。例如,当您编写mysql时,您在提交时就失去了连接。你无法判断提交是成功还是失败。你的redis是不是在倒退?
因此,当您引入一个新层时,您必须弄清楚您必须使用cache/NoSQL的目的以及您可以接受的一致性模型。否则,你就要出丑了。
redis数据不一致问题 redis缓存数据库同步 缓存一致性解决方案
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。