redis双写一致

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

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

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

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

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

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

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

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

读锁的实现

相关推荐
Tech有道7 分钟前
字节真实面经:以Mysql为例,讲一下一条SQL的执行过程和原理!
数据库·后端
七夜zippoe12 分钟前
压缩与缓存调优实战指南:从0到1根治性能瓶颈(一)
缓存·压缩·调优·痛点
壹米饭16 分钟前
QuestDB数据不能新增问题解决方案
数据库·后端
一个喜欢分享的PHP技术19 分钟前
使用JdbcTemplate访问MySQL数据库
数据库
Thepatterraining20 分钟前
MySQL灾难恢复实战指南:从日志分析到数据恢复,大厂经验全分享
数据库·mysql
*长铗归来*39 分钟前
MySQL新学知识(二)MySQL存储过程
数据库·mysql
科兽的AI小记1 小时前
从Coze到BuildingAI:一个程序员对开源AI应用平台的实战体验
数据库·开源·创业
乌萨奇也要立志学C++2 小时前
【Linux】Ext系列文件系统 从磁盘结构到文件存储的原理剖析
android·linux·缓存·1024程序员节
Boop_wu2 小时前
[MySQL] 数据库设计
java·数据库·oracle
xiaoye37083 小时前
达梦数据库连接配置yaml 文件配置
服务器·数据库·oracle