数据的一致性

数据的一致性

通过对查询到的数据库保存到redis中, 如何保证redis和mysql的一致性呢? 比如说有一个线程对数据修改了, 那显示的还是缓存的未修改的数据。 ?这种问题怎么解决呢。 

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小脸 2021-06-19 17:39:56

同学你好,可以删除redis key,这种方法是每当一个数据库更新操作时,我们需要直接把redis的key删除,然后去更新Mysql数据库。并且在休眠500ms(根据具体业务确定)后,再次删除Redis key。这样是为了避免在写未完成的这段时间内,有并发读操作读了mysql中的脏数据,写入了redis中,造成了redis中的一个脏数据。所以我们要给再次删除一遍redis中的key。

祝学习愉快~


  • 提问者 rock221 #1

    老师的意思是,每当数据库更新时,我们删除redis的key, 也就是把缓存的数据删除掉了。 重新读取对吗?

    并且在休眠500ms(根据具体业务确定)后,再次删除Redis key,是什么意思呢?

    我们怎么知道数据库更新时,就删除redis key呢?具体应该在哪个类中操作呢?CachingConfig 吗,应该怎么写呢。


    2021-06-19 18:12:11
  • 狂野男孩_程序猴 回复 提问者 rock221 #2

    redis与数据库保持一致,你可以看看这个博客,挺详细的https://blog.csdn.net/qq_16803227/article/details/106004133

    2021-06-19 19:04:57
  • 提问者 rock221 回复 狂野男孩_程序猴 #3

    谢谢你,感觉这是一个挺难的问题,我看了感觉好复杂。。。

    2021-06-19 19:26:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师