Redis如何实现与MySQL的同步?

在MySQL中修改了一条数据,Redis作为缓存,是如何知道这条数据被修改了?也即如何与MySQL进行同步的?#Java工程师#
全部评论
利用gearman分布式任务框架。 在mysql定义一个UDF函数,返回更新值。在mysql中写一个触发器,当有值更新,触发器触发gearman job server。gearnman会调用用户自己写的守护程序,对redis中的数据进行更新。
点赞 回复 分享
发布于 2016-09-17 12:55
刚好笔记上记了 在一些高并发的场景中,使用 *** 可以减少对后端系统的负载,承担可大部分读的压力,可以大大提高系统的吞吐量,比如通常在数据库存储之前增加 *** 缓存 。 单个节点 *** 不能满足要求,就需要搭建分布式 Cache ;为了解决单个节点失效引起的抖动,分布式 *** 一般采用一致性 hash 的解决方案 。 对于可用性要求比较高的场景,每个节点都是需要有备份的。数据在 *** 和存储上都存有同一份备份,必然有一致性的问题,一致性比较强的,在更新数据库的同时,更新数据库 *** 。对于一致性要求不高的,可以去设置缓存失效时间的策略。 用在高速的写操作的场景中,平台中有些数据需要写入数据库,并且数据是分库分表的,但对数据的可靠性不是那么高,为了减少对数据库的写压力,可以采取批量写操作的方式。开辟一个内存区域,当数据到达区域的一定阀值时如80%时 , 批量flush。
点赞 回复 分享
发布于 2016-09-17 11:02
利用canal机制通过binlog同步
点赞 回复 分享
发布于 2020-05-20 20:45
其实缓存是什么,楼主需要了解清楚,缓存是基于数据库之上的,在一般的,读写都是基于它来的,通过设置缓存失效时间来和后台的数据库进行同步,参考算法一般为LRU,也就是说它本身就是一个内存数据库,根据不同算法flush到后台,你说的情况,可能脱离了数据库orm层,直接裸实现读写分离,采用上面的gearman
点赞 回复 分享
发布于 2016-09-17 19:27
缓存同步这个就复杂了: 存在一个问题是先更新mysql还是先更新redis?这两个其实都会造成脏数据,***采用的是先更新数据库在更新redis,这里有篇文章 详细介绍了: http://lintanghui.com/2016/09/10/***.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
点赞 回复 分享
发布于 2016-09-17 12:30
这个场景一般在dao层通知redis key失效吧……
点赞 回复 分享
发布于 2016-09-17 10:19
租约机制可以吗?
点赞 回复 分享
发布于 2016-09-17 10:15

相关推荐

昨天 10:23
已编辑
湖南师范大学 计调
太久没更新,前几天看到一条评论,说“牛客就是当年那群做题区毕业了开始找工作还收不住那股味”的群体。字里行间透着居高临下的评判,不是,他该不会以为自己很幽默?很犀利吧?作为在牛客混了不算短日子的用户,我感到的不只是被冒犯,更是一种深刻的悲哀——这种以“松弛感”为名,对另一种生存策略的轻蔑,颇有一种自己考不上大学早早出来混社会,嘲笑考上大学的人是书呆子,然后大言不惭地说:死读书有什么用,人脉和资源才是硬道理。我不知道说这个话的人,手头究竟握着多少真正管用的人脉与资源,也不知道他这么傲慢地说出“那股味”的时候,是站在哪一个巨人的肩膀上,才能如此“松弛从容”地俯视众生,还能品评出别人身上“没收住”的余...
淬月星辉:这种评论把正常的努力扭曲成卷😂,说白了就是自己不努力,看着身边努力的人一个个都事业有成了,自己的心里开始不平衡了,就发这种酸言酸语。牛客可以说是我用过那么多平台里社区氛围最好的论坛了,用了大半年了,基本上没见过有人吵架的,都是在互帮互助提建议,帮忙看简历的,帮忙选offer的,帮忙指点学习路线的,分享工作经验和趣事的,我觉得这才是互联网该有的样子。
点赞 评论 收藏
分享
2025-12-18 11:59
广州南方学院 C++
牛客78682892...:直接点还好,总比要了简历也不回的强
点赞 评论 收藏
分享
评论
点赞
21
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务