学习心得 - 架构训练营 - 第四课
Redis Sentinel 存储方案设计
【数据结构设计】
1.试卷
数据结构:采用 redis 的 list 存储数据
key:学校 ID+年度+试卷名
value:判断题、选择题、大题、答案
2.考试答案
数据结构:采用 redis 的 hash 存储数据
key:试卷 ID
value:考试答案
读写流程
1.学生登录后,从 redis 集群中根据 KEY(学校 ID+年度+试卷名) 接取考试数据;
2.生成试卷;
3.学生答题完成后提交试卷,会从 redis 集群中拉取判定题、选择题的答案进行计分,并将
并将结果写入 HBASE 对应考生考试记录中;
4.老师评分,查询 HBASE 提取考生大题,并对考生考试进行评分,并将结果同步写入到 MYSQL 及 HBASE 中。
性能估算
性能:
根据《存储性能需求汇总》部分确认考试请求 QPS 高达 5 万/s,而 redis 单台 QPS 在 8 万/s,redis 能够满足考试性能需求;
存储:
1.试卷
全国约 3000 家大学,500 门专业课,一次考试大约生成(3000 学校*500 课程/4 学年) 40 万套试卷,每套试卷约 10k 数据,约 4G 数据
2.答案
40 万*1k(答案),约 400M 数据
单台 redis 的内存可满足考试需求,考虑到高可用,Redis 选用 Redis Sentinel 方案,采用三节点,每个节点即跑 redis 又跑 Sentinel 。
评论