redis的缓存一致性问题

1、redis的缓存一致性问题=缓存中的数据和数据库中的数据如何保证一致性?

一、redis的常用的两种模式

注意以下两种模式,在大并发下,都会存在一定的漏洞。

1.1、双写模式

修改数据库的同时,修改缓存。如果有两个并发同时进行,第一个修改数据库后有延缓(由于各种原因导致的),在这期间第二个修改进行,紧接着第二个的修改缓存进行。导致第一个修改缓存最后执行,导致了脏数据的出现。

在这里插入图片描述

1.1.1、双写模式的解决方案一------------>加锁的方式

可以通过加锁的方式,将写数据库和写缓存这两个操作加锁实现。一组 写数据库和写缓存 执行完,才执行第二次。

1.1.2、双写模式的解决方案一------------>加锁的方式

1.2、失效模式

在这里插入图片描述

二、精细的解决方案

通过canal来解决,可以省去编码的复杂,只需编写 写数据库的操作即可。因为canal可以主动的去更新redis

在这里插入图片描述

三、通过canal来解决

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43983411/article/details/110748691