写点什么

模块四课后作业 - 设计千万级学生管理系统的考试试卷存储方案

作者:断水风春
  • 2021 年 11 月 20 日
  • 本文字数:946 字

    阅读完需:约 3 分钟

作业要求

基于模块 4 第 6 课的估算结果和 Redis sentinel 的初步方案设计,完善考试试卷存储方案,具体包括:

• 完善 Redis 的数据结构设计,明确具体使用哪种 Redis 数据结构。

• 设计具体的读写流程(可以文字描述也可以序列图描述,序列图要有文字辅助说明)。

• 对照模块 4 第 6 课的性能估算结果,计算 Redis sentinel 集群的服务器数量和性能。

 

作业内容

一、试卷存储-redis 数据结构设计

1、试卷整体信息

【数据结构设计】

Key:String,学校 ID + 课程编号(schoolId + subjectNo)

Value:String,采用 JSON 字符串,方便扩展

 

【读写分析】

(1)、老师在界面上设计试卷时,需要选择学校、课程编号、规则、考试说明等信息,提交后组装成 JSON 字符串,保存到 redis,JSON 字符串字段可支持扩张。

(2)、学生打开试卷,从 redis 中读取 JSON 字符串,展示在界面

 

2、试卷题目内容

【数据结构设计】

key:String,学校 ID + 课程编号 + 试卷编号(schoolId + subjectNo + paperNo)

value:hash,无序,不重复,采用 hash 结构清晰,数据定位快

hash key:String,题目类型 + 题目编号(type + qustionNo)

hash value:String,采用 JSON 字符串

格式如:{“title”:{…},“type”:1,“option”:{…},“rule”:{…},…}

             

【读写分析】

(1)、老师在界面上设计试卷时,支持手工输入题目或从题目中选择,确定提交后系统会组装成 JSON 信息,保存到 redis。字段包括:题目类型、题目编号、题目头、题目选项、题目规则等。

 

(2)、学生打开试卷,从 redis 中读取 JSON 字符串,界面上根据题目编号填充相应 JSON 信息渲染成考试试卷。

             

二、试卷读写流程



(1)、老师录入考题或从题库中选择,试题准备好后 json 形式提交到后台,后台系统校验格式后存储到 redis sentinel 集群;

        redis sentinel 集群,存储 K,V 数据后返回结果到后台系统,后台系统返回结果到老师界面。

(2)、学生打开试卷调用后台系统,后台系统向 redis 读取 k,v 数据,后台处理并组装成 json 字符串向前端输送,学生界面渲染出试卷。

 

三、试卷存储-Redis sentinel 集群的服务器数量和性能



【服务器数量】

1 主、2 从、3 哨兵

 

【服务器性能】

3 台数据节点服务器,redis 单台性能可达到 10W+,3 台 QPS 可到 30W+,足够满足 5w 的 QPS 需求;

3 台哨兵服务器提供监控,确保系统高可用。

用户头像

断水风春

关注

还未添加个人签名 2018.04.26 加入

还未添加个人简介

评论

发布
暂无评论
模块四课后作业-设计千万级学生管理系统的考试试卷存储方案