写点什么

模块四作业

发布于: 6 小时前

作业要求


基于模块 4 第 6 课的估算结果和 Redis sentinel 的初步方案设计,完善考试试卷存储方案,具体包括:

• 完善 Redis 的数据结构设计,明确具体使用哪种 Redis 数据结构。

• 设计具体的读写流程(可以文字描述也可以序列图描述,序列图要有文字辅助说明)。

• 对照模块 4 第 6 课的性能估算结果,计算 Redis sentinel 集群的服务器数量和性能


提示

1. 性能可以有一定冗余。


千万级学生管理系统的考试试卷存储方案需求汇总

假设全国有 1 万间学校,每一间学校每一个学期最多有 200 门课,一年 2 次考试,每门考试的答案 20 判断题、20 选择题、4 道大题,存储系统只保留最近 6 年的考卷。

在校学生考卷的存储量:

一年:10000*100(课)*2(考试次数)*50(题目)*2(学期)=200MB

假设存储 20 年卷的存储量:200MB*20=4GB

2. 试卷请求 QPS:5 万/s;


Redis 的存储方案设计

数据结构设计

key: 学校 ID + 年份+学期 ID+课程 ID+ 考试 ID

Value :List,JSON 格式


读写分析

1.老师提交题目,按照 key 保存。

2.老师需要修改题目时,按照 key 将全部考卷内容返回,修改后,再按照 key 保存。

3.试卷请求时,按照 key return 考卷内容

4.如果需要查询某一家学校,某一年份,某一学期,某一课程,可以按照前缀来查询即可。


Redis sentinel 集群的服务器数量

选择 3 台服务器。单机可支持 TPS/QPS 5~10 万,这样已经足够应付试卷请求 QPS:5 万/s, Master 故障的时候 sentinel 自动切换。

既然已经可以应付试卷请求的 QPS, 老师提交修改试卷的 TPS 肯定远低于这个值,这个数量可以支援读写的需求。


用户头像

还未添加个人签名 2020.10.16 加入

还未添加个人简介

评论

发布
暂无评论
模块四作业