采用 Redis+数据库建立了一个在线 B2B 电商系统

案例

        阅读以下关于数据库缓存的叙述,回答问题1至问题3。

【说明】

        某大型电商平台建立了一个在线 B2B 电商系统,并在全国多地建设了货物仓储中心,通过提前备货的方式来提高货物的运送效率。但是在运营过程中,发现会出现很多跨仓储中心调货从而延误货物运送的情况。为此,该企业计划新建立一个全国仓储货物管理系统,在实现仓储中心常规管理功能之外,通过对在线 B2B 商店系统中订单信息进行及时的分析和挖掘,并通过大数据分析预测各地仓储中心中各类货物的配置数量,从而提高运送效率,降低成本。
        当用户通过在线 B2B商店系统选购货物时,全国仓储货物管理系统会通过该用户所在地址、商品类别以及仓储中心的货物信息和地址,实时为用户订单反馈货物起运地(某仓储中心)并预测送达时间。反馈送达时间的响应时间应小于1秒。
        为满足反馈送达时间功能的性能要求,设计团队建议在全国仓储货物管理系统中采用数据缓存集群的方式,将仓储中心基本信息、商品类别以及库存数量放置在内存的缓存中,而仓储中心的其它商品信息则存储在数据库系统。

【问题 1】(9 分)

        设计团队在讨论缓存和数据库的数据一致性问题时,李工建议采取数据实时同步更新方案,而张工则建议采用数据异步准实时更新方案。
        请用 200字以内的文字,简要介绍两种方案的基本思路,说明全国仓储货物管理系统应该采用哪种方案,并说明采取该方案的原因。

【问题 2】(9 分)

        随着业务的发展,仓储中心以及商品的数量日益增加,需要对集群部署多个缓存节点,提高缓存的处理能力。李工建议采用缓存分片方法,把缓存的数据拆分到多个节点分别存储,减轻单个缓存节点的访问压力,达到分流效果。
        缓存分片方法常用的有哈希算法和一致性哈希算法,李工建议采用一致性哈希算法来进行分片。请用200 字以内的文字简要说明两种算法的基本原理,并说明李工采用一致性哈希算法的原因。

【问题 3】(7 分)

        全国仓储货物管理系统开发完成,在运营一段时间后,系统维护人员发现大量黑客故意发起非法的商品送达时间査询请求,造成了缓存击穿。张工建议尽快采用布隆过滤器方法解决。请用 200 字以内的文字解释布隆过滤器的工作原理和优缺点。

【答案】

【问题 1】答案

        实时方案:当数据库数据更新时,同时更新内存的缓存数据。
        异步准实时更新方案:当数据库数据更新时,不立即更新缓存数据,而是将需要更新的操作记录成日志,再逐步排队完成更新。
        本题中,建议采用准实时方案,理由是:题目中对性能有严格要求,要求 1s 内完成。实时同步方案最大的问题在于同步并发时的性能不可控。所以准实时方案才能确保该要求能实现。

【问题 2】答案

        哈希分片:通过对 key 进行 hash 操作,可以把数据分配到不同实例,这类似于取余操作,余数相同的,放在一个实例上。
        一致性哈希分片:哈希分片的改进,把存储结点和需要存储的数据都存放在一个 hash 环上,数据根据 hash 值在 hash 环上按正时针方向找到对应的数据存储结点上。
        一致性哈希分片的方式在扩充缓存结点时,只需要对少量数据进行存储位置的更新,而哈希分片需要对几乎所有数据进行存储位置更新。

【问题 3】答案

        布隆过滤器通过一个很长的二进制向量和一系列随机映射函数来记录与识别某个数据是否在-个集合中。如果数据不在集合中,能被识别出来,不需要到数据库中进行查找,所以能将数据库查询返回值为空的查询过滤掉。
        优点:
        (1)占用内存小
        (2)查询效率高
        (3)不需要存储元素本身,在某些对保密要求比较严格的场合有很大优势。
        缺点:
        (1)有一定的误判率,即存在假阳性,不能准确判断元素是否在集合中。
        (2)不能获取元素本身
        (3)一般情况下不能从布隆过滤器中删除元素。

        注:这个题目不知道大家有没有选,不建议选,如果选择的话,问题2和问题3基本都是没法做的,那些概念都是超纲的,基本是全部丢分,问题一也得有相关经验的才能做对。列出来是想大家了解了解。

        后面23/24年都是机考,案例分析没有真题,都是回忆篇,因此案例分析到此就结束啦!=>=>=>祝咱们考试成功哦

相关推荐

采用 Redis+数据库为建立线上药品销售系统-CSDN博客文章浏览阅读1.8k次,点赞95次,收藏80次。本文探讨了某医药销售企业线上药品销售系统的数据库设计与优化问题。系统采用关系数据库MySQL和数据库缓存Redis的混合架构,但在初步运行后发现数据访问性能较差。为解决此问题,采用了反规范化设计方法来改造药品关系结构,以提高查询性能。同时,针对反规范化可能带来的数据不一致性问题,提出了应用程序数据同步或触发器数据同步的解决方案。此外,系统还利用Redis实现了当前热销药品排名等功能,并探讨了Redis与MySQL数据实时同步的常见方案。https://shuaici.blog.csdn.net/article/details/143187404采用 Redis+数据库为某互联网文化公司建立网上社区平台-CSDN博客文章浏览阅读2.4k次,点赞99次,收藏90次。本文讨论了某互联网文化发展公司采用Redis+数据库解决方案构建网上社区平台,分析了Redis数据类型与平台功能的对应关系,如STRING用于评论计数器,LIST用于粉丝列表等。接着,从磁盘更新频率、数据安全、数据一致性、重启性能和数据文件大小等方面比较了Redis的RDB和AOF持久化方式,并解释了为何选择RDB。最后,探讨了Redis缓存管理中的“定期删除+惰性删除”策略失效情况及应对策略,包括多种内存淘汰机制。_某互联网文化发展公司因业务发展,需要建立网上社区平台,为用户提供一个对网络文化https://shuaici.blog.csdn.net/article/details/1422112592019年系统架构师案例分析试题四-CSDN博客文章浏览阅读1.4k次,点赞73次,收藏48次。存在双写不一致问题,在写数据时,可能存在缓存写成功,数据库写失败,或者反之,从而造成数据不一致。当多个请求发生时也可能产生读写冲突的并发问题。 (a)从数据库中读取数据或读数据库; (b)更新缓存中 key 值或更新缓存; (c)数据库; (d)删除缓存 key 或使缓存 key 失效或更新缓存(key 值)。_2019 年系统架构师https://shuaici.blog.csdn.net/article/details/1420592732018年系统架构师案例分析试题四-CSDN博客文章浏览阅读1.7k次,点赞58次,收藏48次。Redis 分布式存储的常见方案有: (1)主从(Master/Slave)模式; (2)哨兵(Sentinel)模式; (3)集群(Cluster)模式。Redis 集群切片的常见方式有: (1)客户端实现分片。分区逻辑在客户端实现,采用一致性哈希来决定 Redis 节点。 (2)中间件实现分片。在应用软件和Redis 中间,例如 Twemproxy、Codis 等,由中间件实现服务到后台 _系统架构师2018年案例题https://shuaici.blog.csdn.net/article/details/141716025

猜你喜欢

转载自blog.csdn.net/g984160547/article/details/143324853