写点什么

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

用户头像
王瑞强
关注
发布于: 2021 年 05 月 23 日

一.试卷存储数据结构

使用 redis string 数据结构存储

key: questionnaire_试卷 ID;

val:

[    {        "questionId":111, //题ID        "type":1, //题型 1-选择题;2-简答题;3-判断题        "stem":"选择题1", //题干        "items":[ //选项            {                "num":"1", //编号                "content":"当前账号" // 内容            },            {                "num":"2",                "content":"其他账号"            }        ],        "point":"5", //分数        "current_answer":[1]    },    {        "questionId":112,        "type":2,        "stem":"简答题1",        "items":[
], "point":"5", "current_answer":[] }, { "questionId":113, "type":3, "stem":"判断题1", "items":[ { "num":"1", "content":"当前账号" }, { "num":"2", "content":"其他账号" } ], "point":"5", "answer":[ 1 ] }]
复制代码

二.试卷读写流程


主要分为以下三个流程

1.老师新增/修改试卷

2.老师删除试卷

3.学生试卷访问

三.服务器数量及性能预估


学校的考试都安排在某一个月内,考试的时候请求试卷,由于考试集中在上午 4 小时和下午 4 小时,且请求试卷集中在考试开始的前 1 分钟。

由此估算出:

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

redis 单机 5-10W 吞吐量,采用最简单的 redis sentinel 架构部署即可,即三台服务器。部署架构如下


用户头像

王瑞强

关注

还未添加个人签名 2020.02.06 加入

还未添加个人简介

评论

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