写点什么

学生试卷 & 答题结构 redis 存储

用户头像
面朝大海
关注
发布于: 刚刚

性能分析

请求试卷:1000 万 * 20(课)/ 20(周末不考试) / 4(每天 4 堂考试)/ 1 分钟 = 250 万请求/分钟 ≈ 5 万/每秒

提交试卷: 1000 万 * 20(课)/ 20(周末不考试) / 4(每天 4 堂考试)/ 30 分钟 = 1700/每秒

数据结构设计

考虑到并发量在 5 万/秒的级别,试卷存储采用 redis 进行存储,提高响应效率

试卷存储

考虑到获取试卷时基本为一次性获取所有的试卷内容,因此使用 redis 字符串结构进行存储,其中

key:Paper + 学校 ID + 学院 ID + 科目 ID + 试卷 ID

value:试卷的具体内容(序列化存储)

答题结果数据

使用 redis 字符串结构进行存储,其中

key:Paper + 学校 ID + 学院 ID + 科目 ID + 试卷 ID + 学生 ID

value:题号 + 答题内容,构造一个个 key/value 结果后,再整体序列化存储

Redis 读写流程

Redis 架构设计

采用 Redis sentinel 集群架构模式,按照标准的 sentinel 结构,需要部署 6 台机器,3 台部署 sentinel 节点,3 台部署 redis 节点,redis 节点采用一主两从的模式,考虑到单台 redis 可以支撑 5~10 万/s 请求,且提交试卷的 qps 相对于获取试卷的 qps 而言并不算高,因此可以直接使用标准的 6 台服务器进行部署即可

当然这其中还要考虑服务器的性能,因此需要按照该架构做好压力测试,根据测试结果调整服务器配置

用户头像

面朝大海

关注

我们终会上岸,阳光万里 2019.06.02 加入

互联网金融从业者

评论

发布
暂无评论
学生试卷&答题结构redis存储