写点什么

模块四作业 (试卷存储设计)

作者:天琪实刚亮
  • 2022 年 5 月 01 日
  • 本文字数:456 字

    阅读完需:约 1 分钟

一、存储架构分析

在千万级学生管理系统的考试需求中,最高的性能要求,即试卷的 QPS 估算为 5w/s,所以需要一个 In-memory 的低延迟数据存储中间件存储试卷,而且不需要存储关系型的强一致性数据,所以 Redis 是个不错的选择,又因为要保证高可用和高性能,最终选择 Redis sentinel 的部署方案。

二、数据结构

考试试卷分为题目及答案,学生先获取到题目,然后进行答题,答题完成后提交作答,返回答案比对。因此题目和答案分开存储

针对考试题目存储,使用 hash 数据结构。

key 为学校 id+课程 id+试卷 id

hash 结构中的 key 为 题目编号

hash 结构中的 value 为 题目文本

针对考试答案存储,使用 hash 数据结构。

key 为学校 id+课程 id+试卷 id

hash 结构中的 key 为 题目编号

hash 结构中的 value 为 题目正确答案

三、读写流程


四、性能估算

最大的 QPS 为请求试卷,5 万/s,单台 redis 就可以支撑

redis sentinel 集群至少 3 个 sentinel 节点,3 个 redis 数据节点,因此 redis 服务器的数量至少 6 台

redis3 个数据节点,1 主 2 从读写分离,并发读的能力约 15 万左右,达到性能要求。

用户头像

软件开发老兵 2022.03.04 加入

从事java开发十多年的一位软件开发老兵

评论

发布
暂无评论
模块四作业(试卷存储设计)_天琪实刚亮_InfoQ写作社区