redis双写一致

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

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

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

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

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

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

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

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

读锁的实现

相关推荐
程序猿小D4 小时前
[附源码+数据库+毕业论文+开题报告]基于Spring+MyBatis+MySQL+Maven+jsp实现的车辆运输管理系统,推荐!
java·数据库·mysql·spring·毕业设计·开题报告·车辆运输管理系统
极限实验室5 小时前
ES 踩坑记:Set Processor 字段更新引发的 _source 污染
数据库
regret~6 小时前
【记录】Ubuntu20.04安装mysql
数据库·mysql
见未见过的风景8 小时前
想删除表中重复数据,只留下一条,sql怎么写
数据库·sql
哆啦A梦的口袋呀9 小时前
pymongo库:简易方式存取数据
数据库·mongodb
城里有一颗星星9 小时前
6.删除-demo
数据库·go
失重外太空啦10 小时前
Mysql练习
android·数据库·mysql
像风一样自由202010 小时前
Navicat操作指南:MySQL数据库配置与Todo应用部署
数据库·mysql·adb
青竹易寒10 小时前
Redis技术笔记-从三大缓存问题到高可用集群落地实战
数据库·redis·笔记