刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

试题四(共25分)

阅读以下关于数据系统方面的叙述,在答题纸上回答问题1至问题3。


【说明】

某初创企业的主营业务是为用户提供高度个性化的商品订购业务,其业务系统支持PC端、手机App等多种访问方式。系统上线后受到用户普遍欢迎,在线用户数和订单数量迅速增长,原有的关系数据库服务器不能满足高速并发的业务要求。

为了减轻数据库服务器的压力,该企业采用了分布式缓存系统,将应用系统经常使用的数据放置在内存,降低对数据库服务器的查询请求,提高了系统性能。在使用缓存系统的过程中,企业碰到了一系列技术问题。

【问题1】(11分)

该系统使用过程中,由于同样的数据分别存在于数据库和缓存系统中,必然会造成数据同步或数据不一致性的问题。该企业团队为解决这个问题,提出了如下解决思路:应用程序读数据时,首先读缓存,当该数据不在缓存时,再读取数据库;应用程序写数据吋,先写缓存,成功后再写数据库;或者先写数据库,再写缓存。

王工认为该解决思路并未解决数据同步或数据不一致性的问题,请用100字以内的文字解释其原因。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

本题主要考查分布式架构中数据库和缓存双写一致性的架构策略和方案。

Redis是企业级系统高性能、高并发、高可用架构中非常重要的一个环节。Redis主要解决了关系型数据库并发量低的问题,有助于缓解关系型数据库在高并发场景下的压力,提高系统的吞吐量。而在Redis的实际使用过程中,难免会遇到缓存与数据库双写时数据不一致的问题,这是架构策略必须要考虑的问题。


【问题1】

答案:

在高并发条件下存在不同线程间网络延迟不同的情况,且缓存和数据库数据不同写入请求的速度也存在差异,并且缓存和数据库删除和写入均存在失败的可能性,这些会导致解决思路无法解决数据同步和不一致性问题。

(a)读数据库,

(b)写缓存

(c)数据库

(d)更新缓存key值/删除缓存key值/使缓存key值失效

解析:

问题1提到的解决思路试图通过优先读取缓存数据或先写入缓存来解决数据同步和不一致性问题。然而,在实际的高并发环境下,网络延迟、系统处理速度等因素会导致数据不同步。例如,当先修改数据库再删除缓存时,如果删除缓存失败,数据库中已经是新数据,但缓存中仍然是旧数据,造成数据不一致。反之,如果先删除缓存再修改数据库,在缓存读不到数据的情况下,查询数据库并更新缓存时可能拿到最新的数据,也会导致数据不一致。因此,单纯的这种策略无法完全解决数据同步和不一致性问题。需要更复杂的同步机制和策略来确保数据的一致性。

创作类型:
原创

本文链接:【问题1】(11分)该系统使用过程中,由于同样的数据分别存在于数据库和缓存系统中,必然会造成数据同步

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share