redis双写一致

redis双写一致,指的是redis缓存与mysql数据同步

双写一致常见方案有很多:

同步双写:更新完mysql后立即同时更新redis

mq同步:程序在更新完mysql后,投递消息到中间键mq,一个程序监听mq,获得消息后更新redis中的数据

阿里cannal组件实现异步监听:优点是不需要更改业务代码,部署cannal服务。cannal服务会把自己伪装成mysql的从节点,数据库更新后,canal会读取binlog数据,canal客户端获取到数据,会更新缓存

保证双写强一致性可以考虑上共享锁和排他锁,即读写锁

可用redisson实现读写锁,读的时候添加读锁,读共享,不能写。更新数据的时候,添加写锁,读写都互斥。这样就能保证写数据的同时不会让其他线程读取数据,避免脏数据。

排它锁底层可以使用setnx,也可以使用redisson框架(分布式环境中如何实现排他锁)

读锁的实现

相关推荐
FeBaby16 分钟前
mysql为什么使用b+树不使用红黑树
数据库·b树·mysql
青草地溪水旁1 小时前
`mysql_query()` 数据库查询函数
数据库·mysql·c
玩转数据库管理工具FOR DBLENS1 小时前
精准测试的密码:解密等价类划分,让Bug无处可逃
数据库·单元测试·测试用例·bug·数据库开发
AAA修煤气灶刘哥1 小时前
踩完 10 个坑后,我把多表查询 + MyBatis 动态 SQL 写成了干货
java·数据库·后端
秦jh_2 小时前
【MySQL】基本查询
linux·数据库·c++·mysql
烟雨归来3 小时前
升级openssh后ORACLE RAC EM 安装失败处理
数据库·oracle
TDengine (老段)3 小时前
TDengine IDMP 应用场景:电动汽车
大数据·数据库·物联网·ai·时序数据库·iot·tdengine
BD_Marathon9 小时前
【Flink】部署模式
java·数据库·flink
csudata9 小时前
十年磨一剑,中启乘数CData数据库一体机重新定义企业级数据库解决方案
数据库·数据库开发
TDengine (老段)10 小时前
TDengine IDMP 应用场景:工业锅炉监控
大数据·数据库·物联网·信息可视化·时序数据库·tdengine