架构实战营 第 6 期 模块四课后作业
千万级学生管理系统考试试卷存储方案
1. 数据结构设计
Key:学校 ID + 考试 ID
Value:用 Sorted Set 按顺序存储题目
因为考试题目对每一个学生都是一样的,用学校 ID 和考试 ID 就可以唯一记录一场考试。
考试题目是不能重复,并且有顺序的,所以选择用 Sorted Set。
2. 读写流程
新增考试:按学校 ID + 考试 ID 作为唯一的 Key 新建记录
新增题目:将题目按题号顺序插入记录题目的 Sorted Set
读取题目:按照学校 ID + 考试 ID 找到对应的考试记录,从 Sorted Set 按顺序读取题目并显示
3. 性能估算
因为每个学期有 20 场考试,加入每场考试都由一个老师输入题目,所以 TPS 为:20/s。
根据以上分析,已知试卷目请求 QPS:5 万/s。
写入请求 TPS 较低,可以不考虑性能问题。
读取请求 QPS,已知 Redis 单个节点可达到 5 万/s。考虑一定冗余,可配置包括 3 个节点的 Redis sentinel。这样可以满足 3 x 5 万/s = 15 万/s 的读取请求。
评论