设计千万级学生管理系统的考试试卷存储方案
前言
本文是学生管理系统,数据存储具体方案,完善考试试卷存储方案
考试试卷存储方案
1. 业务分析:
不同学校不同年级试卷存储
试卷在考前写入即可,后续是读请求
2. 学生管理系统数据估算:
请求试卷:5 万/s
提交试卷:1700/s
在校学生:1000 万 * 20(课)* 2(考试次数) * 1000(答案)* 2(学期) * 3(只有前三年考试)= 2.4T
离校学生:每年 250 万,存储量为 0.6T
3. Redis 数据结构
分析:试卷由 20 判断题、选择题、四道大题组成,可能每个学校都有同样的题,所以可以建立各种题型的题库,redis 只需要存编号去找
使用 Hash Table,key 为学校 ID+编号(编号包含科目,年级等信息)
在考试时读取并发量较高,所以试卷可以组装好后,作为热点数据提供读取
学生的答案只有写入操作,不过存储量较大,每年增加
4. 读写流程
老师从题库选题,生成试卷数据存到 redis 中(有新题可以加题库内容)
学生从 redis 集群中读取试卷
学生提交答案到 redis
老师批改
打分并同步到 hbase
计算 Redis sentinel 集群的服务器数量和性能。
1. 请求试卷的 QPS 大概 5 万,单台 redis 上万,并且我们这里仅仅是简单的 kv 操作,应该够用
2. 使用集群的话,一般是奇数个节点,然后一台就够用了,所以弄 3 台可以
3. 使用集群更多的就是为了提高可用性,防止出错耽误学生考试。3 台就是十几万 qps
评论