模块四作业
设计千万级学生管理系统的考试试卷存储方案
【作业要求】基于模块 4 第 6 课的估算结果和 Redis sentinel 的初步方案设计,完善考试试卷存储方案,具体包括:
• 完善 Redis 的数据结构设计,明确具体使用哪种 Redis 数据结构。
• 设计具体的读写流程(可以文字描述也可以序列图描述,序列图要有文字辅助说明)。
• 对照模块 4 第 6 课的性能估算结果,计算 Redis sentinel 集群的服务器数量和性能
假设有 1000 个大学,每个大学有 30 个专业,每个专业有 50 门课,每门课考试的答案 20 判断题、20 选择题、4 道大题,每门课试卷 10kb。
则每年考试试卷记录的存储量为:
1000(大学) * 30(专业)* 50(课程数量)= 1500000。
每年考试试卷所需存储空间为:
1500000 * 10kb = 15G
数据结构:
可以使用 redis string 格式存储。
key 为试卷 id,具体可为学校 id+课程 id+学年
value 为试卷内容,string 格式。
读写流程:
老师设计完试卷后,以学校 id+课程 id+学年为 key,试卷内容为 string value,存入 redis。
系统读取试卷时,基于相应的 key,读取试卷内容。
redis 集群服务器数量:
假设常用的服务器内存为 16Gb,考虑每年试卷存储容量为 15Gb,假设需要保存最近 10 年的试卷,则为 150Gb,考虑冗余,大概需要 10 台服务器,由于 redis sentinel 集群需要奇数台服务器,因此,需要 11 台内存为 16Gbd 的服务器搭建 redis sentinel 集群。
评论