写点什么

架构实战营 - 模块四作业

作者:危险游戏
  • 2021 年 11 月 21 日
  • 本文字数:487 字

    阅读完需:约 2 分钟

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

Redis 数据结构设计

1,课程列表

采用 List,key:学校代码,value:课程列表

2,试卷列表

采用 List,key:学校代码+课程代码,value:试卷列表

3,试题列表

采用 List,key:学校代码+课程代码+试卷代码,value:试题列表

4,考生答题结果列表

采用 List,key:学校代码+课程代码+试卷代码+考生代码,value:考生答题结果列表

读写流程

1,教师出题:读取试卷的试题列表->插入题目

2,考生作答:读取试卷试题列表->提交答案

服务器数量及性能

使用 redis 主要是为了支撑读取性能。假设学校的考试都安排在某一个月内,考试的时候请求试卷,提交答案,中间答题过程浏览器本地完成,由于考试集中在上午 4 小时和下午 4 小时,且请求试卷集中在考试开始的前 1 分钟,提交答案集中在考试结束前的 30 分钟,因此估算如下:

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

• 提交试卷: 1000 万* 20(课)/ 20(周末不考试) / 4(每天 4 堂考试)/ 30 分钟= 1700/每秒

采用 Redis Sentinel ,一主二从。redis 单机读取可达到 10W+,3 台 QPS 可到 30W+,满足 5w 的 QPS 需求;

用户头像

危险游戏

关注

还未添加个人签名 2019.04.11 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 - 模块四作业