数据库同步工具
sqlserver,Mysql数据同步软件

如何保证redis系列之数据库与缓存数据一致性

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

更新时,请先更新数据库,然后再删除缓存。

读取时,首先读取缓存;如果不是,请读取数据库,将数据放入高速缓存中,然后返回响应。

乍一看,一致性问题似乎可以很好地解决。但是,如果仔细考虑一下,就会发现仍然存在一个问题:如果先更新数据库却无法删除缓存,该怎么办?然后,数据库中有新数据,高速缓存中有旧数据,并且数据不一致。

改进计划:

首先删除缓存,然后更新数据库。因为即使随后的数据库更新失败,高速缓存仍为空,并且在读取时将从数据库中拉出。尽管数据很旧,但数据是一致的。

因此该计划变为:

更新时,请先删除缓存,然后再更新数据库。

读取时,首先读取缓存;如果不是,请读取数据库,将数据放入高速缓存中,然后返回响应。

高并发情况中,将出现以下情况:数据已更改,请先删除缓存,然后再修改数据库。目前,没有时间进行修改。请求到来,读取缓存,发现缓存为空,读取数据库,在修改之前读取旧数据,然后将旧数据放入缓存中。随后,数据更改过程完成了数据库修改。然后结束了,这时发生了数据不一致…

:

常规缓存如下所示:

1:读取的顺序是先读取高速缓存,然后读取数据库

2:写入的顺序是先写入数据库,然后写入缓存

3:每次相关数据更新时,都必须清除缓存

4:为避免极端情况导致缓存与数据库之间的数据不一致,缓存需要设置过期时间。时间到了,缓存会自动清除以实现缓存和数据库数据的“最终一致性”

未经允许不得转载:数据库同步软件|Mysql数据同步软件|sqlserver数据库同步工具|异构同步 » 如何保证redis系列之数据库与缓存数据一致性

分享到:更多 ()

syncnavigator 8.6.2 企业版

联系我们联系我们