千万级学生管理系统的<考试试卷>存储方案
用户量: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)
评论