uu们知道redis和mysql怎么保证强一致性吗,我说了一个延时双删一个binlog,面试官说不能保证。然后给我解释了一下应该怎样保证,但有点紧张没听懂。
全部评论
延时双删和binlog是保证最终一致性,强一致性就用分布式事务吧
10 回复 分享
发布于 03-27 09:40 新疆
强一致性确实没法吧,最简单想的就是2PC的方式,把Redis和MySQL都当做参与者,后端当做协调者,两阶段都提交完,再返回。现实中没人会想这么干吧,毕竟Redis是当缓存的
5 回复 分享
发布于 03-26 12:21 辽宁
强一致性一般都是使用事务吧
2 回复 分享
发布于 03-26 19:51 山东
写完数据库,对对应的缓存加锁,这个时候缓存不能被读,然后更新完缓存了再释放锁。
2 回复 分享
发布于 03-26 13:43 浙江
这么简单,一把互斥锁解决了。如果问你分布式怎么解决,那就走分布式事务那一套。
1 回复 分享
发布于 03-30 17:13 上海
这算是分布式事务了,分布式事务怎么做到强一致性?一般都是最终一致性吧?
1 回复 分享
发布于 03-29 09:53 浙江
延迟双删也不能保证强一致性,延迟时间控制不对或者此时有三个以上线程就很可能造成数据不一致,,binlog是允许有一定时延,可保证最终一致性,,想要强一致,就要降低性能,就是上锁,用读写锁--菜鸟的看法
1 回复 分享
发布于 03-28 17:04 安徽
redis和MySQL的同步策略里有写穿写回和旁路缓存,写穿的概念就是强一致吧
1 回复 分享
发布于 03-26 13:01 美国
m
点赞 回复 分享
发布于 04-16 20:42 福建
m
点赞 回复 分享
发布于 04-14 19:52 广东
使用redission提供的读写锁吧配合旁路缓存模式
点赞 回复 分享
发布于 04-13 19:27 云南
接好运
点赞 回复 分享
发布于 04-06 15:58 北京
m
点赞 回复 分享
发布于 04-04 01:32 江苏
m
点赞 回复 分享
发布于 03-28 12:08 广东
mark
点赞 回复 分享
发布于 03-26 20:12 上海
甄汇?
点赞 回复 分享
发布于 03-26 13:16 河北

相关推荐

不愿透露姓名的神秘牛友
03-24 15:51
点赞 评论 收藏
分享
评论
8
61
分享

创作者周榜

更多
牛客网
牛客企业服务