码迷,mamicode.com
首页 > 数据库 > 详细

如何保持redis和DB的数据一致性

时间:2020-02-26 01:51:51      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:约束   重复数据   需要   update   业务   处理   个数   数据一致性   脏数据   

其实还是得结合业务来思考,我这里给几个思路:

比如你拿个数据要写库,你先根据主键查一下,如果这数据都有了,你就别插入了,update 一下好吧。
比如你是写 Redis,那没问题了,反正每次都是 set,天然幂等性。
比如你不是上面两个场景,那做的稍微复杂一点,你需要让生产者发送每条数据的时候,里面加一个全局唯一的 id,类似订单 id 之类的东西,然后你这里消费到了之后,先根据这个 id 去比如 Redis 里查一下,之前消费过吗?如果没有消费过,你就处理,然后这个 id 写 Redis。如果消费过了,那你就别处理了,保证别重复处理相同的消息即可。
比如基于数据库的唯一键来保证重复数据不会重复插入多条。因为有唯一键约束了,重复数据插入只会报错,不会导致数据库中出现脏数据。

如何保持redis和DB的数据一致性

标签:约束   重复数据   需要   update   业务   处理   个数   数据一致性   脏数据   

原文地址:https://www.cnblogs.com/zk-blog/p/12364840.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!