游戏陪玩app开发,数据不一致问题的应对策略

在游戏陪玩app开发中,数据的一致性可以分为两种情况,一种是缓存中存在数据,并且缓存中数据值和数据库中的值一致,另一种就是缓存中不存在数据,数据库中的值和新数据值一致。那么面对数据不一致问题,应该采取哪些应对策略呢?

一、针对读写缓存

所谓的读写缓存就是数据的增删改在游戏陪玩app开发的缓存中进行,并通过同步直写或异步回写策略将数据同步到数据库中。

1、无并发情况

(1)如果是利用同步直写策略就得考虑数据库和缓存数据更新顺序的问题,如果是先更新缓存,再更新数据库,可以采用消息队列+重试机制策略处理数据不一致问题。

(2)如果是先更新数据库,再更新缓存的情况,也可以采用消息队列+重视机制的策略处理数据不一致问题。

2、高并发情况

(1)针对写+读并发类型的数据更新,需要对缓存的读取记录进行保存,然后通过延时消息比较发现数据不一致问题,并进行业务补偿。

(2)针对写+写并发类型的数据更新,需要利用分布式锁保证一个时间段内只有一个线程去更新数据库和缓存,保持数据的一致性,对于没有拿到锁的线程进行延时处理。

二、针对只读缓存

所谓的只读缓存是指新增数据时直接写入游戏陪玩app开发的数据库,更新数据时先删除缓存。

1、无并发情况

由于只读缓存中更新数据库和删除缓存值分成两步进行,所以在无并发的情况下,就有可能出现步骤一成功,但步骤二失败的状况,我们可以采用消息队列+异步重试的解决策略保证数据的一致性。

2、高并发情况

在高并发场景中,游戏陪玩app开发的数据库层面读写并发会导致数据库和缓存中数据不一致的情况

(1)如果是先删除缓存再更新数据库的情况,我们通过设置缓存过期时间+延时双删的方式进行数据不一致的处理;

(2)如果是先更新数据库再删除缓存的情况,我们可以通过延迟消息、异步删除、加锁、删除消息写入数据库等方式保证数据的一致性。

上述内容中的应对策略只是保证了游戏陪玩app开发中最后结果的数据一致性,其实还可以通过使用Redis分布式读写锁、串行化等强一致性策略实现业务层的数据强一致性。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

大中专招生方法二:机器人电话外呼(ai外呼)人工智能外呼系统(含机器人话术模板)|大中专招生方法,机器人外呼,人工智能电话外呼,大专招生方法,中专招生方法,学校招生方法,中职招生方法,机器人话术模板,大中专,招生,方法,机器人,电话,外呼,ai外呼,人工智能,系统,机器,人话,模板
大中专招生方法二:机器人电话外呼(ai外呼)人工智能外呼系统(含机器人话术模板)

历史上的今天:04月29日

热门专题

安徽开放大学|安徽开放大学报名,安徽开放大学报考,安徽开放大学,什么是安徽开放大学,安徽开放大学学历,安徽开放大学学费,安徽开放大学报名条件,安徽开放大学报名时间,安徽开放大学学历,安徽开放大学专业
安徽开放大学
小程序开发|微信小程序,小程序开发,小程序,小程序制作,微信小程序开发,小程序公司,小程序开发公司,分销,三级分销系统,分销系统
小程序开发
大理科技管理学校|大理科技管理中等职业技术学校,大理市科技管理中等职业技术学校
大理科技管理学校
昆明综合高中|昆明综合高中
昆明综合高中
易捷尔高职单招|易捷尔高职单招,易捷尔高职单招培训,单招分数线,单招录取分数线,高职单招学校分数线
易捷尔高职单招
金诺幼儿园(春城路金诺幼儿园)|昆明官渡区幼儿园,幼儿园报名,官渡区幼儿园,春城路幼儿园,幼儿园招生,学前班,昆明幼儿园,金诺幼儿园,环城南路幼儿园,石井路幼儿园
金诺幼儿园(春城路金诺幼儿园)
国家开放大学|国家开放大学报名,国家开放大学报考,国家开放大学,什么是国家开放大学,国家开放大学学历,国家开放大学学费,国家开放大学报名条件,国家开放大学报名时间,国家开放大学学历,国家开放大学专业
国家开放大学
综合高中|云南综合高中,昆明综合高中,综合高中能考本一吗,综合高中和普通高中的区别,综合高中是什么意思,综合高中能参加全国统一高考吗,综合高中可以考哪些大学,综合高中的学籍是什么
综合高中

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部