模块 4 千万级学生管理系统的考试试卷存储方案
前提:
学生 : 1000w
学校 :2000 所
试卷请求 QPS : 5w/s
每张试卷:300K
平均没学期考科目:20 门
考题:判断题 20 道,选择题 20 道,大题 4 道
试卷占用存储大小:按照一学期来计算,2000 * 20 *300K ≈ 1.2G
Redis 的数据结构设计
Key 结构设计
选择题 key:学校 ID :课程 ID:选择题
判断题 key:学校 ID :课程 ID:判断题
大题 key:学校 ID :课程 ID:大题
Value 结构设计
value 数据结构的选择:选择题和判断题选用 hash,大题选用 list
选择题/判断题:hash 的 key 用选择题/判断题题干来充当,value 用选项来充当
大题:list 直接存储题干
读写流程
Redis 集群
试卷的存储 1.2G,所以单台 redis 选择 4 核 8G
试卷请求 QPS : 5w/s
所以 Redis 需要多台集群读取试,试卷大小为 300K,试卷的大小也决定着 redis 的 qps,所以假设 4 核 8G 机器可以支撑 1w/s,所以至少需要 5 台,性能冗余 5*1.5 ≈ 7 台,因为需要做自动切换,所以需要三台哨兵独立部署。一共 10 台 redis 服务器
评论