对于缓存数据一致性的解决方案

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:21   1473   0

1:操作缓存时,先写数据库,再写缓存。

2:对于缓存的并发性问题

由于卡顿等原因,导致了缓存2走到了缓存1的前面,这样数据库的数据得到的和缓存中查询的不一致

脏数据的问题,在数据稳定之后,缓存过期后,重新查询数据库便可以达到正常的数据,达到数据的一致性。

失效模式:

先进行写数据库,再删除缓存

对于缓存双写模式还是失效模式,都会导致缓存不一致的问题

1:缓存数据加上过期时间,隔一段时间触发进行主动更新即可。

2:缓存数据+过期时间可以解决大部分业务对于缓存的要求。

3:通过加锁保证并发读写,写的时候按顺序排好队。读读无所谓。适用于读写锁(业务不关心脏数据,允许临时出现脏数据的问题可以忽略)

总结

1:放入缓存中的数据不应该是实时性、一致性要求超高的。所以缓存数据加上相应的过期时间、保证每天拿到最新的数据即可。

2:不应该过度设计,增加系统的复杂性。

3:遇到实时性、一致性要求很高的数据,应该直接查询数据库。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP