redis双写一致

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

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

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

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

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

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

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

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

读锁的实现

相关推荐
seventeennnnn3 分钟前
Java面试实战:Spring Boot+微服务+AI的谢飞机闯关之路 | CSDN博客精选
spring boot·redis·spring cloud·微服务·ai·java面试·rag
想你依然心痛7 分钟前
MySQL数据库:关系型数据库的基石
数据库·mysql
hweiyu0013 分钟前
MySQL视图介绍
数据库·mysql
海天瑞声AI31 分钟前
六月上新!多语种正则/逆正则数据集、5000小时中文双工数据集、经典人物IP语音合成数据集……
数据库·人工智能·自然语言处理·语音识别
Zfox_32 分钟前
Redis:渐进式遍历
服务器·数据库·redis·缓存
铃木隼.35 分钟前
Postgresql日常维护
数据库·postgresql
爱编程的小新☆38 分钟前
【MySQL】视图
数据库·mysql
GreatSQL43 分钟前
工具分享-从ibd文件中恢复数据的神器ibd2sql
数据库
大熊猫侯佩1 小时前
iOS 18 中全新 SwiftData 重装升级,其中一个功能保证你们“爱不释手”
数据库·ios·swift
时序数据说1 小时前
时序数据库Apache IoTDB核心技术深度解析
大数据·数据库·开源·apache·时序数据库·iotdb