写点什么

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

作者:joak
  • 2022 年 6 月 19 日
  • 本文字数:486 字

    阅读完需:约 2 分钟

(一) 数据结构设计

  1. 试卷数据结构:,采用 Hash 数据结构,存储的目录结构为"com:paper:"

主 key: 试卷的 ID(日期+考试类型+科目 ID)

子 key:question, 子 Value: 试卷的具体内容【数据结构为 JSON 数据】

子 key: answer, 子 Value: 试卷的标准答案【数据结构为 JSON 数据】

  1. 学生提交试卷答案数据结构:采用 String 数据结构,存储的目录结构为"com:student:answer:日期:"

Key: 学生试卷答案 ID(试卷 ID+学生 ID),

vlalue: 对应的学生试卷答案【json 的数据结构】

(二) 数据的读写分析

学生在进行试卷请求时【即读取数据】,按照轮询的机制访问从库数据,进行读取试卷的数据。学生在提交试卷时采用在主库中进行写入数据。整体的采用主库写入数据,从库读取数据。


(三) 数据库分析

  1. 采用 redis+sentinel 模式,主要为 1 主两从和 3 哨兵的模式,

  2. 选用 3 台主机【虚拟服务器】分别部署数据节点和 sentinel 节点[每台机器上即部署数据节点也部署哨兵节点,这样即节省资源也确保了数据的高可用]。

  3. 按照最低的计算单台机器支持 QPS:3W、TPS:3000/S,考试应用在从机上进行数据读取【请求试卷】,在主机上进行写操作【提交试卷】。


发布于: 刚刚阅读数: 3
用户头像

joak

关注

还未添加个人签名 2019.10.31 加入

还未添加个人简介

评论

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