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

简答题

阅读以下关于分布式数据库缓存设计的叙述,在答题纸,上回答问题1至问题3.

[说明]某企业是为城市高端用户提供高品质蔬菜生鲜服务的初创企业,创业初期为快速开展业务,该企业采用轻量型的开发架构(脚本语言+关系型数据库)研制了一套业务系统。业务开展后受到用户普遍欢迎,用户数和业务数量迅速增长,原有的数据库服务器已不能满足高度并发的业务要求。为此,该企业成立了专门的研发团队来解决该问题。张工建议重新开发整个系统,采用新的服务器和数据架构,解决当前问题的同时为日后的扩展提供支持。但是,李工认为张工的方案开发周期过长,投入过大,当前应该在改动尽量小的前提下解决该问题。李工认为访问量很大的只是部分数据,建议采用缓存工具MemCache来减轻数据库服务器的压力,这样开发量小,开发周期短,比较适合初创公司,同时将来也可以通过集群进行扩展。然而,刘工又认为李工的方案中存在数据可靠性和一致性问题,在宕机时容易丢失交易数据,建议采用Redis来解决问题。 在经过充分讨论,该公司最终决定采用刘工的方案。


[问题1](9分)

在李工和刘工的方案中,均采用分布式数据库缓存技术来解决问题。请说明分布式数据库缓存的基本概念。

表4- 1中对MemCache和Redis两种工具的优缺点进行了比较,请补充完善表4-1中的空(1) ~ (6) 。

表4-1


[问题2](8分)

刘工认为李工的方案存在数据可靠性和一致性的问题,请说明原因。

为避免数据可靠性和一致性的问题,刘工的方案采用Redis作为数据库缓存,请说明基本的Redis与原有关系数据库的数据同步方案。

[问题3](8分)

请给出Redis分布式存储的2种常见方案和Redis集群切片的几种常见方式。

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

答案:

[问题1]

分布式数据库缓存指的是在高并发环境下,为了减轻数据库压力和提高系统响应时间,在数据库系统和应用系统之间增加的独立缓存系统。

(1)Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。

(2)不支持

(3)支持

(4)不支持

(5)支持

(6)弱支持,只能保证事务中的每个操作连续执行


[问题2]
数据仅存在于内存中,宕机或重启数据将全部失效,这属于数据可靠性问题。
MemCache不支持事务,存在数据一致性问题。

读数据时,先读Redis中的数据,如果Redis没有,则从原数据库读取,并同步更新Redis数据。写数据时,先写入原数据库中,并同步更新至Redis中。


[问题3]

(1)主从、Cluster
(2)客户端分片、Twemproxy、Redis Cluster、Proxy + Redis Cluster

解析:

[问题1]
分布式数据库缓存是为了减轻数据库压力和提高响应速度而在应用系统和数据库之间加入的缓存层。关于MemCache和Redis的优缺点比较,根据已知信息和常见特性进行填充。

[问题2]
李工的方案使用MemCache,其数据存储在内存中,因此一旦服务器宕机或重启,数据会丢失,这是数据可靠性的问题。另外,由于MemCache不支持事务,存在数据一致性的问题。Redis作为缓存与数据库之间的数据同步,在读操作时先查Redis再查数据库,写操作时先写数据库再更新Redis,以确保数据的可靠性和一致性。

[问题3]
Redis的分布式存储方案包括主从复制和Redis Cluster。Redis集群切片的常见方式有客户端分片、Twemproxy、Redis Cluster以及通过Proxy进行集群切片等。

创作类型:
原创

本文链接:阅读以下关于分布式数据库缓存设计的叙述,在答题纸,上回答问题1至问题3. [说明]某企业是为城市高端

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

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

分享考题
share