架构实战营 模块四 作业
数据结构设计 redis
一、存储试卷简要信息
使用 hashtable
key:学校 id + 课程 id + 年份
hashtable:试卷 id(使用算号器生成),试卷名称
二、试卷详情
使用 hashtable
key:试卷 id
hashtable: 20 判断题、20 选择题、4 道大题
三、设置考试使用的试卷 id
使用 string
key:学校 id + 课程 id
string: 试卷 id
读写流程
写入:
添加试卷,老师存入试卷的时候,首先使用算号器生成试卷 id,然后把试卷 id,试卷名称存入到试卷简要信中,便于筛选,然后试卷 id 作为 key,把试卷的题目信息存储到试卷详情中
因为会有多份试卷的情况,老师可以设置考试使用的试卷 id
读取:
考试时,学生可以根据老师设置好的试卷 id,获取到试卷的题目信息
分析
写入性能,老师的人数有限,录入试卷的时间不是集中的,所以可以忽略不计
读取性能,请求试卷:1000 万 * 20(课)/ 20(周末不考试) / 4(每天 4 堂考试)/ 1 分钟 = 250 万请求/分钟 ≈ 5 万/每秒。redis 单机: 5 万/每秒。可以使用一主二从三哨兵进行部署,三台 Redis 服务器组成服务集群,再有三台服务器部署哨兵组成哨兵集群
评论