模块四
一、Redis sentinel 集群的试卷存储
1、存储分析
假设 1000 万在校学生,每个学生平均一学期 20 门课,100 人同一学校同一课程,
则需要试卷 1000 万*20/100=200 万份。
假设每门考试的答案 20 判断题、20 选择题、4 道大题(答案 200 字以内),假设每门试卷需要字符串 30K,答题内容缓存需要字符串 1K
则试卷需要 redis 存储 200 万份*30K 每份 ≈ 60G,答题缓存 redis 需要存储 1000 万份*1K 每份 ≈ 10G
2、试卷数据结构
【试卷数据结构】
key:学校 ID+课程 ID+试卷 ID。
value:试卷内容(JSON 字符串)
【读写分析】
1、老师从 mysql 集群的题库中生成试卷,并保存到 redis 中。
2、学生请求试卷,根据 key 返回 试卷内容 value。
【答题内容数据结构】
key:学校 ID+课程 ID+试卷 ID+考生 ID。
value:答题内容(JSON 字符串)
【读写分析】
1、学生作答,答题内容根据 key 暂存在 redis。
2、学生提交试卷,写入 HBase 集群。
二、Redis sentinel 集群的服务器数量
根据前面计算可得到:
试卷请求 QPS:5 万/s。
提交试卷 TPS:1700/s。
试卷需要 redis 存储 60G。
答题缓存需要 redis 存储 10G。
需要 redis 服务器 2 台:一主一备,内存都是 128G,32 核。
需要 sentinel 服务两台,以提高高可用。
评论