架构实战营|模块 4
一、redis 数据结构设计
1、请求试卷
考虑到同一时间学生的考试内容是一样的,所以只需存储考试试卷内容即可。
这里使用 String 结构放 json 字符串来存储试卷内容。
2、提交试卷
学生提交试卷实际是提交的试题结果,这里需要区分学生和考试科目。
使用 HashMap 来存放试卷提交结果。
key:学校 ID + 学号 ID + 考试 ID。
value :考试答案,json 格式。
二、读写分析
1、学生登录考试系统后直接拉取当前考试试卷即可。
2、学生提交考试结果,直接安装 key 保存结果。
三、Redis sentinel 集群服务器数量预估
考试性能需求
1、在校学生考试结果存储:2.4T
2、离校学生考试结果存储:每年增长 0.6T
3、试卷请求 QPS:5 万/s
4、提交试卷:1700/s
情况分析
1、搭建 sentinel 至少需要 3 台服务器
2、redis 的 QPS 在 10 万左右,完全满足需求
3、redis 中只需存储考试试卷和考生提交结果,需要 10G 内存
4、请求试卷需要 50M/s 带宽
综上,需要 3 台 4 核 16G 服务器,网络带宽 60M
评论