写点什么

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

发布于: 2021 年 05 月 22 日

1.计算 Redis sentinel 集群的服务器数量和性能

学生的人数为 1000 万。假设学校的考试都安排在某一个月内,考试的时候请求试卷,提交答案,中间答题过程浏览器本地完成,由于考试集中在上午 4 小时和下午 4 小时,且请求试卷集中在考试开始的前 1 分钟,因此估算如下:

请求试卷:1000 万 * 20(课)/ 20(周末不考试) / 4(每天 4 堂考试)/ 1 分钟 = 250 万请求/分钟 ≈ 5 万/每秒。

单机 redis TPS 5~10 万 QPS 到百万级别。所以一台就可以支持性能 要三台服务器做 redis sentinel 集群,一主二从性能足够。


2.完善 Redis 的数据结构设计

使用 String 类型数据结构。

key:课程 id+试卷 id。

value:用 String 类型 整个试卷内容是 json.


3.设计具体的读写流程

试卷的 crud 操作,都是对整个试卷的操作,试卷的属性有 id,课程 id,试题(题号,类型,题目标题,选项),新增和修改时业务层对试卷的题目内容做 json 化处理,要保证有序性。


新增:根据课程 id 和试卷 id 作为 key,试卷内容 json 为 value 进行新增。

更新:根据 key 更新 value 的试卷内容 json 无需扫描。

删除:根据 key 直接删除 无需扫描。

复杂度都是 O1. 实现和操作都不复杂。

用户头像

还未添加个人签名 2018.03.18 加入

还未添加个人简介

评论

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