如何确保缓存中的数据和数据库中的数据一致(缓存数据一致性)

存在两种方式可以使用:
 
第一种方式:双写模式
 
解释:双写默认也就是在更新数据库的同时,再将缓存中的数据进行更新。
 
存在问题:
 
在高并发的环境下,可能会出现暂时性的脏读问题,当缓存过期之后,就会获取到正确的数据
 
 
第二种方式:失效模式
 
解释:失效模式,就是在数据库进行更新之后将缓存中的数据进行删除,在访问的时候在向数据库中查询数据并保存。
 
存在问题:
 
在高并发的环境下,也会产生脏读问题,造成的结果就是在更新了数据库之后,在缓存中保存的数据任然是修改之前的数据
 
 
 
解决方式:
如果在要求缓存数据一致性要求不高的环境下,例如菜单、商品信息等大可不用考虑出现的脏读问题,只需要在存放缓存的时候添加上过期时间即可,到了过期时间,就会同步数据库中的数据;
如果是在要求缓存数据一致性较高的环境下,我们可以添加读写锁解决上述两种方案的脏读问题;
如果是在要求缓存数据一致性超高,实时性的环境下,我们大可不添加缓存,直接查询数据库即可,就是会慢一点。

posted @ 2023-02-01 14:42  just1t  阅读(181)  评论(0编辑  收藏  举报