写点什么

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

用户头像
唐江
关注
发布于: 2021 年 05 月 18 日

用户量:1000 万

【试卷】

1. 试卷请求 TPS:5 万/s

2. 录入试卷 TPS 大约 0.5/s


存储架构:采用 Redis Sentinel


数据结构:

key:学校 ID+学院 ID+课程 ID+试卷 ID

value:保存题目

包括以下字段:题目类型(单选、多选、解答)、题目描述、分值、选择题选项,每个题目使用 Json 字符串表示,按序插入到 List 结构存储。


试卷写流程

1、通过界面录入题目信息,包括题目类型,考题描述、分值、选项,然后生成对象序列化成 json 串保存到 redis list。

2、如果需要修改题目信息,先查询出来具体的题目,然后直接修改,可以用 list 的下标索引直接修改某个值。

3、删除可以题目时,可以使用 LREM 指令,虽然效率较低,但可以接受

试卷读流程:

1、直接读取 List 全部数据

2、通过范围读取


Redis sentinel 集群服务器数量:

TPS:5 万/s 单台服务器就可以支撑,正好 sentinel 集群就是单台主服务器提供服务,既能支持并发量又保证高可用,所以 采用 3 个 sentinel,redis server 1 主 2 备,共 3 台服务器即可。

服务器性能要求:4C、8G、带宽需要万兆网卡(一个试卷 50 题 * 512 字节/每题 * 5000 =1280M)


用户头像

唐江

关注

还未添加个人签名 2020.02.19 加入

还未添加个人简介

评论

发布
暂无评论
千万级学生管理系统的<考试试卷>存储方案