模块四(千万级学生管理系统的考试试卷存储方案)
一.考试试卷存储性能需求
1. 试卷请求 QPS:5 万/s;
2. 提交试卷 TPS:1700/s;
二.数据结构设计
用 redis 的 zset 来存储,它的特点是去重,可以调整顺序
key: 日期+学校+ 学院+专业+课程
score: 题目的编号 (将编号设置为 4 位数,前 2 位用于对大题的编号,后 2 位用于对大题中小题的序号编号,一般考试大题或小题的编号是不会超过 99 的)
value: 题目的内容
三.读取流程
新增:根据 key(日期+学校+ 学院+专业+课程), 向它的 value 添加题目的内容
删除:根据 key + score ,删除指定的题目
修改:根据 key + score ,找到具体的题目,修改其 value
读取:根据 key,获得试卷的内容,也可以用 zrange key index index ,跳着查看具体的某道题目
四.Redis sentinel 集群的服务器数量和性能
根据试卷存储性能需求,试卷请求 QPS:5 万/s; 提交试卷 TPS:1700/s;根据网上查到单台 redis 的 QPS 为 10 万,TPS 为 8 万,完全满足试卷存储性能需求,考虑到系统的高可用性,用三台 redis 服务器,一台主,二台备,同时用另外 3 台机器作为 sentinel,保证出问题时,能保证系统的高可用性。
评论