redis双写一致性

双写一致性问题

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

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

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

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

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

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

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

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

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

总结:

相关推荐
Web项目开发13 小时前
Mysql创建索引的SQL脚本,复制粘贴即可使用
数据库·sql·mysql
晴天¥14 小时前
Oracle如何在DBeaver上进行登录
数据库·oracle
2301_8002561114 小时前
事务处理-同步与调度-两阶段锁-隔离级别
数据库·oracle
小罗和阿泽14 小时前
MySql数据库系列 数据库基础操作
数据库·mysql
周末吃鱼14 小时前
mysql8.0支持CURRENT_DATE如何写
数据库·sql·mysql
kaico201814 小时前
MySQL的窗口函数
数据库·mysql
luming-0214 小时前
报错解决:IDEA终端输出和CMD终端输出Maven版本不一致
java·缓存·bug·intellij-idea
minhuan14 小时前
大模型应用:大模型数据缓存复用方案:从API请求数据累积到智能融合.50
缓存·api调用·大模型应用·大模型数据缓存复用
MM_MS14 小时前
Halcon控制语句
java·大数据·前端·数据库·人工智能·算法·视觉检测
薛定谔的猫198214 小时前
LlamaIndex(三) LlamaHub工具集
数据库·mysql·llamahub