模块四作业 (试卷存储设计)
一、存储架构分析
在千万级学生管理系统的考试需求中,最高的性能要求,即试卷的 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 万左右,达到性能要求。
评论