redis双写一致

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

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

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

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

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

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

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

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

读锁的实现

相关推荐
tc&13 分钟前
为什么 Kamailio 模块封装的 MySQL 函数能有效防范 SQL 注入?
数据库·sql·mysql·网络攻击模型·kamailio
cookqq17 分钟前
Java+MySQL时区难题-Date自动转换String差8小时
数据库·mysql
sugarzhangnotes19 分钟前
MySQL 8.0升级中的字符集陷阱与解决方案
android·数据库·mysql
BD_Marathon22 分钟前
MyBatis核心配置文件之mappers
java·数据库·mybatis
float_六七33 分钟前
数据库管理系统(DBMS) 的核心组成部分
数据库·oracle
科技块儿41 分钟前
内网系统IP离线数据库搭建与维护完整方案
数据库·网络协议·tcp/ip
小徐不徐说44 分钟前
避坑指南:Qt 中 Lambda 表达式崩溃原因与高效使用实践
数据库·c++·qt·面试
chirrupy_hamal44 分钟前
WAL 记录的内容变种
数据库·postgresql
1***43801 小时前
技术文章大纲:用MySQL玩转数据可视化数据库连接与数据查询基础
数据库·mysql·信息可视化
binbinaishijie881 小时前
Matlab读取CSV数据并处理实战指南:从入门到精通
大数据·数据库·其他·matlab