当前位置: 首页 > article >正文

20241017软考架构-------软考案例3答案

每日打卡题案例3答案

3.【2018年真题】 难度:一般
阅读以下关于分布式数据库缓存设计的叙述,在答题纸,上回答问题1至问题3.(共25分)
【说明】
某企业是为城市高端用户提供高品质蔬菜生鲜服务的初创企业,创业初期为快速开展业务,该企业采用轻量型的开发架构(脚本语言+关系型数据库)研制了一套业务系统。业务开展后受到用户普遍欢迎,用户数和业务数量迅速增长,原有的数据库服务器已不能满足高度并发的业务要求。为此,该企业成立了专门的研发团队来解决该问题。张工建议重新开发整个系统,采用新的服务器和数据架构,解决当前问题的同时为日后的扩展提供支持。但是,李工认为张工的方案开发周期过长,投入过大,当前应该在改动尽量小的前提下解决该问题。李工认为访问量很大的只是部分数据,建议采用缓存工具MemCache来减轻数据库服务器的压力,这样开发量小,开发周期短,比较适合初创公司,同时将来也可以通过集群进行扩展。然而,刘工又认为李工的方案中存在数据可靠性和一致性问题,在宕机时容易丢失交易数据,建议采用Redis来解决问题。在经过充分讨论,该公司最终决定采用刘工的方案。
【问题1】(9分)
在李工和刘工的方案中,均采用分布式数据库缓存技术来解决问题。请说明分布式数据库缓存的基本概念。
表4-1中对MemCache和Redis两种工具的优缺点进行了比较,请补充完善表4-1中的空(1)~(6)。
表4-1
在这里插入图片描述

Memcache	Redis

数据类型 简单Key/Value结构 (1)
持久性 (2) 支持
分布式存储 (3) 多种方式,主从、sentinel、cluster等
多线程支持 支持 (4)
内存管理 (5) 无
事务支持 (6) 有限支持

【问题2】(8分)
刘工认为李工的方案存在数据可靠性和一致性的问题,请说明原因。
为避免数据可靠性和一致性的问题,刘工的方案采用Redis作为数据库缓存,请说明基本的Redis与原有关系数据库的数据同步方案。
【问题3】(8分)
请给出Redis分布式存储的2种常见方案和Redis集群切片的几种常见方式。

【参考答案】
试题分析:
【问题1】
(1)Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
(2)不支持
(3)Memcache服务器需要通过hash一致化来支撑主从结构
(4)redis把任务封闭在一个线程中,不支持多线程
(5)使用stabAllcation进行内存管理,按照既定的内存,将内存切割成特定的长度来存储相应的数据
(6)弱支持,只能保证事务中的每个操作连续执行
【问题2】
读数据时,先读Redis中的数据,如果Redis没有,则从原数据库读取,并同步更新Redis数据。写数据时,先写入原数据库中,并同步更新至Redis中。
【问题3】
主从、Cluster
客户端分片、Twemproxy、RedisCluster、Proxy+RedisCluster


http://www.kler.cn/news/354352.html

相关文章:

  • FineReport 预览模式简介
  • 新媒体时代,网站建设完成后的网络推广依然很重要
  • 51单片机的晾衣架控制系统【proteus仿真+程序+报告+原理图+演示视频】
  • spark:数据的关联与合并、缓存和checkpoint
  • C++设计模式 原型模式
  • spring boot热部署
  • “vue : 无法加载文件 D:\nodejs\node_global\vue.ps1,因为在此系统上禁止运行脚本”的解决方法
  • 基于php的图书管理系统
  • 录微课专用提词器,不会被录进视频中的提词器,还能显示PPT中备注的内容
  • 图书管理新趋势:Spring Boot进销存系统
  • 涂鸦智能落地 Koupleless 合并部署,实现云服务降本增效
  • [含文档+PPT+源码等]精品大数据项目-python基于hadoop实现的社交媒体数据分析和用户行为预测
  • Okhttp3中设置超时的方法
  • React前端框架高级技巧
  • 分布式数据库的进度管理:TiDB 备份恢复工具 PiTR 的原理与实践
  • 【数据结构】二叉堆一文详解,附demo
  • android studio confirauration中 install flags和launch flags区别
  • 海思hi3536c配置内核支持USB摄像头
  • Elasticsearch入门:增删改查详解与实用场景
  • 数据结构编程实践20讲(Python版)—16有向图