写点什么

模块四作业 -redis 存储方案设计 - 学生考试试卷

作者:Geek_cb2b43
  • 2021 年 11 月 21 日
  • 本文字数:993 字

    阅读完需:约 3 分钟

数据结构设计

【试卷内容-数据结构设计】

Key:学校 ID + 年级 ID+科目 ID + 试卷 ID。

Value type:String 主要存储试卷内容

value:content 试卷题目及信息, 其中 content 是 JSON 格式。

【读写分析】

1 试卷题目的录入,老师把题目录入后,按照 key value 模式存储

   Key 为学校 ID + 年级 ID+科目 ID + 试卷 ID

   Value 为试卷内容 题目 及选项 通过 json 格式存入系统

2. 学生开始考试,通过年级科目 id,读取考试内容;

【答题内容-数据结构设计】

Key:学校 ID + 年级 ID+科目 ID + 试卷 ID + 考试 ID。

Value type:String 主要存储答题内容

value:content 答案信息, 其中 content 是 JSON 格式。

【读写分析】

1 答题内容的保存,按照 key value 模式存储

   Key 为学校 ID + 年级 ID+科目 ID + 试卷 ID + 考试 ID

   Value 为答题内容通过 json 格式存入系统

2. 老师阅卷,通过学校 ID + 年级 ID+科目 ID + 试卷 ID + 考试 ID,读取答题内容;

   保存阅卷内容,对、错,在保存时,录入正确答案

   保存成绩

3 学生查看成绩

  通过学校 ID + 年级 ID+科目 ID + 试卷 ID + 考试 ID,读取阅卷内容 结果 及 成绩

TPS 需求统计


登录统计

假设考试每个学生访问 1 次,个别学生会登录几次,冗余系数设置为 1.5(即平均每个学生登录 1.5 次),登录的次数就是 1000 万 *1.5 = 1500 万,考虑到考试一般是提前几分钟,设定时间为 10 分钟(在 10 分钟内,所有的学生都登录)

,因此登录 TPS 要求为: 1500 万/(10 * 60) = 2.5 万/s。

读取试卷统计

假设考试每个学生访问 1 次,个别学生会访问几次,冗余系数设置为 1.1(即平均每个学生访问 1.1 次),访问的次数就是 1000 万 *1.1 = 1100 万,考虑到考试一般同时访问,设定时间为 5s(在 5 秒内,所有的学生都读到试卷内容)

,因此登录 TPS 要求为: 1100 万/(5) = 220 万/s。

试卷提交统计

假设考试每个学生访问 1 次,冗余系数设置为 1.001(即平均每个学生提交 1.001 次),访问的次数就是 1000 万 *1.001 = 1001 万,考虑到考试一般同时访问,很多同学可能提前交卷,设定时间为 25s(在 25 秒内,所有的学生都提交试卷内容)

,因此登录 TPS 要求为: 1001 万/(25) = 40.04 万/s 再冗余些 按照 41 万。

 

综合得

需要满足 读 220 万/s 写 41 万/s


Redis 单机服务器得性能为单机 TPS 5~10 万。

 

按照 10 万 计算需要 主从读写分离从库,读需要 22 台单机服务器写主 5 台,

为实现 1 主 2 从,即 11 台主 22 台从,物理主机需要 11 台,每台主机交叉部署

每台主机部署 1 主 2 从。


读写流程


用户头像

Geek_cb2b43

关注

还未添加个人签名 2020.10.20 加入

还未添加个人简介

评论

发布
暂无评论
模块四作业-redis 存储方案设计 - 学生考试试卷