写点什么

模块四作业

用户头像
秀聪
关注
发布于: 13 小时前


1、redis 存储架构

根据估算结果,单台 Reids TPS 大概 5 万~10 万,所以两台 redis 的主从结构可以满足需求。当两个 sentinel 监测到 master 失败后,进行 failover 操作

2、redis 数据结构

存储类型:Sorted Set

key: 学校 ID+年级+学期+课程 ID+题目类型

存储方式:

考试题目为 value,题目顺序为 score。其中选择题,由题目和选项 encode 为 json 格式字符串。

3、读写流程

1)写操作

通过 zadd key score value 方式添加试卷题目

2)修改题目

通过 zrange key start stop 方式读取对应的题目,修改后在通过 zadd 方式修改题目

3)删除题目

通过 zrem key value 删除题目

4)读取试卷

通过 zrange key 0 -1 读取题目列表

根据估算,读取试卷的 QPS 最高可达到 5 万/秒,不仅需要考虑存储的读性能,还需要考虑到服务器带宽。为了提高数据处理效率及性能,降低带宽,一次只读取一个种类型的题目。即第一次加载试卷,只加载判断题,判断题做完后,再加载选择题,最后加载大题。这样虽然请求次数多了,但降低单次请求的数据量。每个同学做完一类题目的时间差大约 5 分钟,后续的两类题目的请求的 QPS 将降低为 1 万/秒。


用户头像

秀聪

关注

还未添加个人签名 2013.06.20 加入

还未添加个人简介

评论

发布
暂无评论
模块四作业