千万级学生管理系统的考试试卷存储方案
1.数据结构设计
登录:3000/s
注册:3/s
试卷请求:5 万/s
试卷提交:1700/s
2.数据结构设计
2.1 个人信息、登录状态:
·string 类型
key: 学号
value: {"登录状态": x, "姓名": "华仔", ...}
2.2 试卷信息:
·string 类型
key: 试卷 id
value: 试卷内容
2.3 答题结果:
·hash 类型
key: 试卷 id: 学号 id
value: 题号, 答题内容
2.4 考试成绩:
·hash 类型
key: 试卷 id
value: 学号 id, 成绩
3.读写流程
3.1 出题:老师出题后,将试题写入数据库
3.2 缓存试卷:考试前预加载,从数据库读取试题内容,写入缓存
3.3 读取试卷:从缓存中读取试卷
3.4 提交试卷:将答题内容写入数据库
3.5 批阅试卷:批阅试卷,将成绩写入缓存
3.6 查询成绩:从缓存中读取成绩
4.性能估算
考前 1 分钟试卷请求预估为 5 万/s,预估最高峰值为 3 倍即 15 万/s。单机 redis 的 QPS 估算在 5-10 万,使用 3 节点,高可用采用 Redis sentinel 最少 3 节点,可支撑 QPS 为 5*3=15 万/s。
评论