写点什么

模块四作业 千万级学生管理系统的考试试卷存储方案

作者:小朱
  • 2021 年 11 月 21 日
  • 本文字数:447 字

    阅读完需:约 1 分钟

采用 zset 结构存储,value 存储题目内容,score 存储题目序号。


具体读写情况如下:

每门考试有一个唯一的编号,比如 2021+课程编号+01/02(01 表示期中考试,02 表示期末考试)。

老师出题时,试卷中每道题的信息(包括题目序号、题目类型、题目内容)存入 Hbase。

考试前几天,将试卷信息同步到 redis 中,采用 zset 结构存储,value 存储题目内容,score 存储题目序号。

开始考试时,从 redis sentinel 读取试卷内容。考虑到试卷内容数据量不大(按每道题 200 字节算,20 判断题、20 选择题、4 道大题一共约 8K 字节),因此可以一次性将全部试卷内容从 redis 读取。(当然,如果某考试试卷内容特殊,超过 1M 字节,则可以分批次读取试卷内容,比如第一次读取前 10 道题。。。)

学生每答完一道题,将答题结果存储在 app/浏览器本地。最终提交试卷时,将答题全部结果存入 mysql,记录如下信息:试卷唯一编号  学生唯一学号 题目序号 答题结果 正确与否 得分


redis sentinel 服务器

根据性能估算结果,读试卷时 tps 在 5 万左右,而 redis 单机 TPS 5~10 万。同时考虑高可用,故采用一主两从节点+3 个哨兵模式。



发布于: 2 小时前阅读数: 4
用户头像

小朱

关注

还未添加个人签名 2021.06.29 加入

还未添加个人简介

评论

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