开发者社区> 问答> 正文

校验数据库和缓存之间数据的一致性

1.背景:数据库是MySQL,缓存是Redis,redis主要用来读缓存,现需要检测数据可和缓存之间的一致性,确保从缓存读取的数据是最新的。现阶段检验一致性的方法是迭代比较每条记录是否一致。
2.问题:目前检验的方法不宜扩展,容易受限。如果数据量越来越大、记录数越多,则检查一致性的时间会越来越长,这对运行的服务也是有影响的。
3.改进:设置了两个定时器
一个是定时(时间间隔短如10min)扫描检查数据的一些重要属性如库存价格。
二是定时(时间间隔长如1h)扫描所有数据的属性值。
请教大家在应用中是否有遇到该类问题及其解决方法?

展开
收起
落地花开啦 2016-02-26 11:29:10 4211 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    首先“ 确保从缓存读取的数据是最新的”这个想法就有点走入误区,既然是缓存,那么必然是有对实时性可以有一定的容忍度的数据,容忍度的时间可以是5分钟,也可以是5小时,取决于不同的数据类型。
    然后,一定要求是实时性的数据,就不应该从缓存里读取,比如 库存 。再比如价格,既可以选择直接从数据库读实时数据,也可以选择缓存较短时间,甚至做到一个网站里不同页面的价格读取采用不同的方案

    2019-07-17 18:48:04
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载