Redis的双写一致性问题

双写一致性问题

1.先删除缓存或者先删除数据库都可能出现脏数据。

2.删除两次缓存,可以在一定程度上降低脏数据的出现。

3.延时是因为数据库一般采用主从分离,读写分离。延迟一会是让主节点把数据同步到从节点。

1.读写锁保证数据的强一致性

因为一般放入缓存中的数据都是读多写少(如果读少写多,就不用缓存了,直接操作数据库)。因此,用读写锁可以保证数据的强一致性。但缺点就是性能低,因为写数据时,其他线程还是要等待。

2.消息队列保证数据最终一致

这种情况可能有短暂的数据延迟,但效率高。

3.基于Canal的异步通知(和方法2类似)

优点:对于业务代码几乎零侵入。 缺点:还是可能有短暂的数据延迟。

总结:

相关推荐
百***812718 小时前
【HTML+CSS】使用HTML与后端技术连接数据库
css·数据库·html
6***34918 小时前
MySQL项目
数据库·mysql
木井巳18 小时前
【MySQL数据库】数据库基础
数据库·mysql
Wang's Blog18 小时前
MySQL: 查询全流程深度解析与性能优化实践指南
数据库·mysql·性能优化
一 乐18 小时前
宠物管理|宠物共享|基于Java+vue的宠物共享管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·springboot·宠物
Wang's Blog18 小时前
MongoDB小课堂: 高级查询操作符与游标管理综合指南之深度整合逻辑操作符、字段处理、数组查询与游标控制的最佳实践
数据库·mongodb
垂金烟柳19 小时前
MongoDB GridFS 历史数据自动化清理实践
数据库·mongodb·自动化
白露与泡影19 小时前
MySQL中的12个良好SQL编写习惯
java·数据库·面试
foundbug99919 小时前
配置Spring框架以连接SQL Server数据库
java·数据库·spring
q***318919 小时前
mysql 迁移达梦数据库出现的 sql 语法问题 以及迁移方案
数据库·sql·mysql