写点什么

千万级学生管理系统的考试试卷存储方案

用户头像
feitian
关注
发布于: 17 小时前

设计千万级学生管理系统的考试试卷存储方案

【作业要求】

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

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

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

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

【提示】

1. 性能可以有一定冗余。

2. 如果对 Redis sentinel 不熟悉,请参考官方文档:https://redis.io/topics/sentinel


数据结构

使用 Redis set 数据结构,方便查找和去重。

Key:学校 ID + 学号 ID + 试卷 ID。

Value:试卷内容 + 答案。


读写流程

  1. 按照 Key,学校 ID + 学号 ID + 试卷 ID 查询试卷详情及考试答案。

  2. 按照 Key,学校 ID + 学号 ID + 试卷 ID 查询考生答题答案。


性能评估

假设每门学科每年 2 次考试,每个学生平均一学期 20 门课,考试采取机考的方式,每门考试的答案 20 判断题、20 选择题、4 道大题(答案 200 字以内),考试结果永久保存,在校学生能够看到自己曾经的考试结果,则考试结果记录的存储量为:

• 在校学生:1000 万* 20(课)* 2(考试次数) * 1000(答案)* 2(学期) * 3(只有前三年考试)= 2.4T。

• 离校学生:每年 250 万,存储量为 0.6T

假设 redis 使用 128G 内存,2.4T/128G=18.75,则大约只扫需要 redis 20 台左右。

用户头像

feitian

关注

还未添加个人签名 2018.05.07 加入

还未添加个人简介

评论

发布
暂无评论
千万级学生管理系统的考试试卷存储方案