免费智能真题库 > 历年试卷 > 系统架构设计师 > 2020年下半年 系统架构设计师 下午试卷 案例
  第4题      
  知识点:   Redis   数据管理   数据库

 
某互联网文化发展公司因业务发展,需要建立网上社区平台,为用户提供一个对网络文化产品(如互联网小说、电影、漫画等)进行评论、交流的平台。该平台的部分功能如下:
(a)用户帖子的评论计数器;
(b)支持粉丝列表功能;
(c)支持标签管理;
(d)支持共同好友功能等;
(e)提供排名功能,如当天最热前10名帖子排名、热搜榜前5排名等;
(f)用户信息的结构化存储;
(g)提供好友信息的发布/订阅功能。
该系统在性能上需要考虑高性能、高并发,以支持大量用户的同时访问。开发团队经过综合考虑,在数据管理上决定采用Redis+数据库(缓存+数据库)的解决方案。
 
问题:4.1   (10分)
Redis支持丰富的数据类型,并能够提供一些常见功能需求的解决方案。请选择题干描述的(a)~(g)功能选项,填入表4-1中(1)~(5)的空白处。

 
问题:4.2   (7分)
该网上社区平台需要为用户提供7X24小时的不间断服务。同时在系统出现宕机等故障时,能在最短时间内通过重启等方式重新建立服务。为此,开发团队选择了Redis持久化支持。Redis有两种持久化方式,分别是RDB(Redis DataBase)持久化方式和AOF(Append Only File)持久化方式。开发团队最终选择了RDB方式。
请用200字以内的文字,从磁盘更新频率、数据安全、数据一致性、重启性能和数据文件大小五个方面比较两种方式,并简要说明开发团队选择RDB的原因。
 
问题:4.3   (8分)
缓存中存储当前的热点数据,Redis为每个KEY值都设置了过期时间,以提高缓存命中率。为了清除非热点数据,Redis选择“定期删除+惰性删除”策略。如果该策略失效,Redis内存使用率会越来越高,一般应采用内存淘汰机制来解决。
请用100字以内的文字简要描述该策略的失效场景,并给出三种内存淘汰机制。
 
 
 

   知识点讲解    
   · Redis    · 数据管理    · 数据库
 
       Redis
        Redis是一种主要基于内存存储和运行,能够快速响应的键值数据库,属于临时和永久兼具类型,有点像Memcached,整个数据库统统加载在内存当中进行操作,但是通过定期异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作。
        Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存List链表和Set集合的数据结构,而且还支持对List进行各种操作。此外单个value的最大限制是1GB,不像Memcached只能保存1MB的数据。其主要缺点是数据库容易受到物理内存的限制,不能用作海量数据的高性能读写,并且它没有原生的可扩展机制,不具有扩展能力,要依赖客户端来实现分布式读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
        将传统关系型数据库、MongoDB和Redis的特点做一个简单对比。如下表所示,读写响应性能上,传统关系型数据库一般,MongoDB类似于磁盘读写的NoSQL数据库速度较快,基于内存存储的Redis数据库最快。但是传统关系型数据库应用范围广泛,后两者以互联网应用为主。在当前互联网环境下,许多大型网站需要这种处理高并发和高响应的内存数据应用。
        
        传统关系型数据库和MongoDB、Redis的比较
        Redis的数据库存储模式,是基于键值(Key-Value)基本存储原理,进行细化分类,构建了具有自身特点的数据结构类型。像MySQL这样的关系型数据库,表的结构比较复杂,会包含很多字段,可以通过SQL语句,来实现非常复杂的查询需求。而Redis客户只包含“键”和“值”两部分,只能通过“键”来查询“值”。正是因为这样简单的存储结构,也让Redis的读写效率非常高。键的数据类型是字符串,但是为了丰富数据存储的方式,方便开发者使用,值的数据类型很多,它们分别是字符串、列表、字典、集合、有序集合。在对数据进行各种命令操作之前,首先要掌握Redis的数据结构类型特点。
        字符串是Redis数据库最简单的数据结构,形式如下表所示,字符串值的内容是二进制的,意味着可以把数字、文本、图片、视频等都赋给这个值,最大长度不能超过512MB。键名的命名要容易阅读,方便系统维护;键名不要太长,否则会影响数据库执行效率。
        
        Redis的字符串结构
        列表由若干插入顺序的字符串组成,支持存储一组数据。这种数据类型对应两种实现方法,一种是压缩列表,另一种是双向循环链表。列表中存储的数据量比较小的时候,列表就可以采用压缩列表的方式实现。压缩列表由Redis自己设计实现,类似于数组,通过一片连续的内存空间存储数据,在读写操作时只能从其两头开始(由链表的寻址方式所决定)。不过,它跟数组不同的一点是Redis允许存储的数据大小不同。如下表所示,将700010看作表头的第一个结点字符串数据,结尾是700012字符串。值的内容允许重复出现。列表可用于聊天记录、博客评论等无需调整字符串顺序但又需要快速响应的场景。
        
        Redis的列表结构
        集合是由不重复且无序的字符串元素组成的整体,结构如下表所示,集合与列表最主要的区别是,集合里面所有字符串是唯一的;所有字符串的读写顺序是任意的,不存在从两头操作的问题。
        
        Redis的集合结构
        散列表可以存储多个键值对的映射,是无序的一种数据集合。只有在数据存储数据量比较小的情况下,Redis才使用散列表进行操作,如下表所示。键的内容必须是唯一的,不能重复,且字符串不宜过长,以免占用过多内存,影响执行效率。使用“:”等隔离符号增加可读性,并给使用者提供更大的存储空间。值可以是字符串类型也可以是数字型。散列表特别适用于存储一个对象,会占更少的内存,并且方便存取整个对象。
        
        Redis的散列结构
        有序集合的键被称为成员(member),每个成员都是各不相同的。有序集合的值则被称为分值(score),分值必须为浮点数。有序集合是Redis里面唯一一个既可以根据成员访问元素,又可以根据分值以及分值的排列顺序访问元素的结构,如下表所示。有序集合的值自动进行排序,键字符串必须唯一,值可以重复。由于采用自动值排序,在数据量较多的情况下,检索速度比散列表快。
        
        Redis的有序集合结构
 
       数据管理
               数据生命周期
               在数据的整个生命周期中,不同的数据需要不同水平的性能、可用性、保护、迁移、保留和处理。通常情况下,在其生命周期的初期,数据的生成和使用都需要利用高速存储,并相应地提供高水平的保护措施,以达到高可用性和提供相当等级的服务水准。随着时间的推移,数据的重要性会逐渐降低,使用频率也会随之下降。伴随着这些变化的发生,企业就可以将数据进行不同级别的存储,为其提供适当的可用性、存储空间、成本、性能和保护,并且在整个生命周期的不同阶段都能对数据保留进行管理。
               数据的安全性管理是数据生命周期中的一个比较重要的环节。在进行数据输入和存取控制的时候,企业必须首先保证输入数据的数据合法性。要保证数据的安全性,必须保证数据的保密性和完整性,主要表现在以下5个方面:
               (1)用户登录时的安全性。从用户登录网络开始,对数据的保密性和完整性的保护就应该开始了。
               (2)网络数据的保护。包括在本地网络上的数据或者穿越网络的数据。在本地网络的数据是由验证协议来保证其安全性的。
               (3)存储数据以及介质的保护。可以采用数字签名来签署软件产品(防范运行恶意的软件),或者加密文件系统。
               (4)通信的安全性。提供多种安全协议和用户模式的、内置的集成支持。
               (5)企业和Internet网的单点安全登录。
               随着时间的推移,大部分数据将不再会被用到。一般情况下,一些无用的数据将被删除以节省空间,或者将有用的数据无限期地存储,以避免数据损失。
               信息资源管理
               信息资源管理(Information Resource Management,IRM)是对整个组织信息资源开发利用的全面管理。IRM把经济管理和信息技术结合起来,使信息作为一种资源而得到优化地配置和使用。上次我们在谈企业信息化的任务时,说开发信息资源既是企业信息化的出发点,又是企业信息化的归宿;只有高档次的数据环境才能发挥信息基础设施作用、建立集成化的信息系统、落实信息资源的开发和利用。因此,从IRM的技术侧面看,数据环境建设是信息资源管理的重要工作。
               企业信息资源管理不是把资源整合起来就行了,而是需要一个有效的信息资源管理体系,其中最为关键的是从事信息资源管理的人才队伍建设;其次,是架构问题,在信息资源建设阶段,规划是以建设进程为主线的,在信息资源管理阶段,规划应是以架构为主线,主要涉及的是这个信息化运营体系的架构,这个架构要消除以往分散建设所导致的信息孤岛,实现大范围内的信息共享、交换和使用,提升系统效率,达到信息资源的最大增值;技术也是一个要素,要选择与信息资源整合和管理相适应的软件和平台;另外一个就是环境要素,主要是指标准和规范,信息资源管理最核心的基础问题就是信息资源的标准和规范。
               数据管理
               企业信息资源开发利用做得好坏的关键人物是企业领导和信息系统负责人。IRM工作层上的最重要的角色就是数据管理员(Data Administrator, DA)。数据管理员负责支持整个企业目标的信息资源的规划、控制和管理;协调数据库和其他数据结构的开发,使数据存储的冗余最小而具有最大的相容性;负责建立有效使用数据资源的标准和规程,组织所需要的培训;负责实现和维护支持这些目标的数据字典;审批所有对数据字典做的修改;负责监督数据管理部门中的所有职员的工作。数据管理员应能提出关于有效使用数据资源的整治建议,向主管部门提出不同的数据结构设计的优缺点忠告,监督其他人员进行逻辑数据结构设计和数据管理。
               数据管理员还需要有良好的人际关系:善于同中高层管理人员一起制定信息资源的短期和长期计划。在数据结构的研制、建立文档和维护过程中,能与项目领导、数据处理人员和数据库管理员协同工作。能同最终用户管理部门一起工作,为他们提供有关数据资源的信息。
               一般来说,由数据管理员对日常数据进行更新和维护。数据库为了保证存储在其中的数据的安全和一致,必须有一组软件来完成相应的管理任务,这组软件就是数据库管理系统,简称DBMS, DBMS随系统的不同而不同,但是一般来说,它应该包括数据库描述功能、数据库管理功能、数据库的查询和操纵功能、数据库维护功能等。为了提高数据库系统的开发效率,现代数据库系统除了DBMS之外,还提供了各种支持应用开发的工具。
               目前许多厂商提供了相应的DBMS,便于数据管理员对底层的数据进行维护。例如MySQL、东软的OpenBase、金仓的KingbaseES等。
               公司级的数据管理
               如何进行信息资源规划?信息资源规划主要可以概括为“建立两种模型和一套标准”。“两种模型”是指信息系统的功能模型和数据模型,“一套标准”是指信息资源管理基础标准。信息系统的功能模型和数据模型,实际上是用户需求的综合反映和规范化表达;信息资源管理基础标准是进行信息资源开发利用的最基本的标准,这些标准都要体现在数据模型之中。
               企业信息化的最终目标是实现各种不同业务信息系统间跨地域、跨行业、跨部门的信息共享和业务协同,而信息共享和业务协同则是建立在信息使用者和信息拥有者对共享数据的涵义、表示及标识有着相同的而无歧义的理解基础上。然而,由于各部门、各行业及各应用领域对于相同的数据概念有着不同的功能需求和不同的描述,从而导致了数据的不一致性。数据的不一致性主要表现为:数据名称的不一致性、数据长度的不一致性、数据表示的不一致性以及数据含义的不统一性。
               数据标准化是一种按照预定规程对共享数据实施规范化管理的过程。数据标准化的对象是数据元素和元数据。数据元素是通过定义、标识、表示以及允许值等一系列属性描述的数据单元,是数据库中表达实体及其属性的标识符。在特定的语义环境中,数据元素被认为是不可再分的最小数据单元。元数据是描述数据元素属性(即语义内容)的信息,并被存储在数据元素注册系统(又称数据字典)中。数据元素注册系统通过对规范化的数据元素及其属性(即元数据)的管理,可以有效实现用户跨系统和跨环境的数据共享。数据标准化主要包括业务建模阶段、数据规范化阶段、文档规范化阶段等三个阶段。
               数据标准化是建立在对现实业务过程全面分析和了解的基础上的,并以业务模型为基础的。业务建模阶段是业务领域专家和业务建模专家按照《业务流程设计指南》,利用业务建模技术对现实业务需求、业务流程及业务信息进行抽象分析的过程,从而形成覆盖整个业务过程的业务模型。该阶段着重对现实业务流程的分析和研究,尤其需要业务领域专家的直接参与和指导。业务模型是某个业务过程的图形表示或一个设计图。
               数据规范化阶段是数据标准化的关键和核心,该阶段是针对数据元素进行提取、规范化及管理的过程。数据元素的提取离不开对业务建模阶段成果的分析,通过研究业务模型能够获得业务的各个参与方、确定业务的实施细则、明确数据元素对应的信息实体。该阶段是业务领域专家和数据规范化专家按照《数据元素设计与管理规范》利用数据元素注册系统(或数据字典)对业务模型内的各种业务信息实体进行抽象、规范化和管理的过程,从而形成一套完整的标准数据元素目录。在实现数据元素标准化的同时,还应关注数据元素取值的规范化,以此实现信息表示和信息处理的标准化。
               文档规范化阶段是数据规范化成果的实际应用的关键,是实现离散数据有效合成的重要途径。标准数据元素是构造完整信息的基本单元,各类电子文档则是传递各类业务信息的有效载体,并是将分离的标准数据元素信息进行有效合成的手段。该阶段是业务领域专家和电子文档设计专家按照《电子文档设计指南》对各类电子文档格式进行规范化设计和管理的过程,并形成了一批电子文档格式规范。
               综上所述,数据标准化所涉及的三个主要阶段缺一不可、彼此密不可分。业务建模是数据标准化的基础和前提;数据规范化及其管理是数据标准化的核心和重点;文档规范化是数据标准化成果的有效应用的关键。
               此外,数据标准化也可以采用数据字典、数据指南或信息系统字典等加以统一。数据字典实际上也是以数据表和视图为主要存在形式的,它是关于数据的数据表和视图。管理员可以通过数据字典获得全面的数据库信息。
               数据库审计支持
               数据安全是大型数据库应用系统中必须仔细考虑的一个重要问题,也是数据库管理人员和系统管理人员日常工作中最为重要的一部分。有效的数据库审计是数据库安全的基本要求。企业应针对自己的应用和数据库活动定义审计策略。智能审计的实现对安全管理的意义重大,不仅能节省时间,而且能减少执行所涉及的范围和对象。通过智能限制日志大小,还能突出更加关键的安全事件。
               信息系统审计员可以从数据库系统本身、主体和客体三个方面来进行审计,审计对数据库对象的访问以及与安全相关的事件。数据库审计员可以分析审计信息、跟踪审计事件、追查责任以及使用审计服务器记录审计跟踪,并且可以根据审计信息,对审计结果进行统计、跟踪和分析,进行审计跟踪、入侵检测等。
               目前许多数据库供应商都提供了支持数据库审计的功能,例如东软公司的OpenBASE Secure就提供了十分完善的审计功能。
 
       数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
   题号导航      2020年下半年 系统架构设计师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
 
第4题    在手机中做本题