Redis 缓存更新一致性(2)

阿里巴巴开源了MySQL数据库binlog的增量订阅和消费组件 - canal

我们可以采用API服务器只写入数据库,而另一个线程订阅数据库 binlog 增量进行缓存更新的策略。

这种策略存在和先更新数据库后删除缓存类似的并发问题:

时间读线程写线程异步线程数据库缓存
1   缓存失效           v1   null  
2   从数据库读取v1           v1   null  
3       更新数据库为v2       v2   null  
4           删除缓存/更新缓存   v2   null  
5   写入缓存           v2   v1  

这个问题同样可以采用异步线程更新缓存,且写入缓存时比较数据版本的方法来解决。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/948f3348dfeedf1e8f0d13fb4ba6d420.html