写点什么

模块四

作者:浮生若梦
  • 2022 年 1 月 10 日
  • 本文字数:540 字

    阅读完需:约 2 分钟

设计千万级学生管理系统的考试试卷存储方案


【作业要求】

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

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

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

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

【提示】

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

2. 如果对 Redis sentinel 不熟悉,请参考官方文档:https://redis.io/topics/sentinel


【数据结构设计】

key:学校 ID+年份+科目 ID+试卷 ID

value:list,list 内为 json 格式题目内容


【读写流程】

试卷平时存储在 mysql 或者 hdfs 等文件式存储中,在考试开放之前通过 key 加载到 redis 集群中,redis 集群完成主从复制。

考试开始时,客户端或浏览器调用服务端接口,通过计算节以及对应的 key 取出对应的考试 Json 串解析,并加载到前端。


【性能估算】

读写要求:

TPS = 5w/s,Redis 单机单机 TPS 5 - 10 W 已能满足需求

存储要求:

假设 500 个学校,每张试卷 20KB

500(学校)*20(门课)*2(考试次数)*2(学期)*20KB ≈ 800M 

假设每 3 年更新一轮试卷,总存储量在 2.5G 内存


搭建 Redis sentinel 集群需要三台 8G 内存机器即可满足性能及存储要求,预计能支撑 15W TPS。 

用户头像

浮生若梦

关注

还未添加个人签名 2019.03.11 加入

还未添加个人简介

评论

发布
暂无评论
模块四