浅谈mysql和redis一致性问题详解数据库

要保证一致性 那就是mysql和redis要保证原子性   

当然保证原子性是不可能的 可以有一种择优的方法  网上说双删 我感觉双删太复杂 我不建议采取

我方案就是

1 用redis记录下准备开始

2 缓存失效

3 读取数据库

4 数据库数据写入缓存

5 用redis记录下确保执行完

就是要保证 1到5 中间不能操作数据 ==原子性

所以每次操作数据都要保证1到5的完成

1 之前 也要保证没有操作 1 – 5 操作中没有其他操作 5 后随意

有2种方法可以解决

1 redis写互斥 (除了用setnx就可以) 就是TPS降低了 但也没办法 如果用常驻内存写互斥可能更快点 

这种情况一般用于排行榜用户信息存在redis          更新redis又要更新数据库 所以 缓存丢失的时候 一定要保证 一致  如果没这个需求就不用考虑一致性了

其实只要有钱 我觉得还是全部用mysql就行了  集群搞下。不就蛋疼缓存和mysql一致性问题了

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/database/4016.html

(0)
上一篇 2021年7月16日 18:27
下一篇 2021年7月16日 18:27

相关推荐

发表回复

登录后才能评论