模块四课程笔记:
详情见:https://www.processon.com/view/link/61507e35e0b34d69dd7d6dcb
作业题:
基于模块 4 第 6 课的估算结果和 Redis sentinel 的初步方案设计,完善考试试卷存储方案,具体包括:
• 完善 Redis 的数据结构设计,明确具体使用哪种 Redis 数据结构。
• 设计具体的读写流程(可以文字描述也可以序列图描述,序列图要有文字辅助说明)。
• 对照模块 4 第 6 课的性能估算结果,计算 Redis sentinel 集群的服务器数量和性能。
- Redis 数据结构
- 考试人员采用 Set 存储,其 key 构成规则为 exam:member:{考试 ID}, value 存考试人员 ID;
- 考试试题基础信息采用 Hash 存储,其 key 构成规则为 exam:profile:{考试 ID},value 存储的是考试对象,对象包括考试基础信息,包括考试开始时间,考试结束时间,考试标题,考试说明等基础信息。
- 试卷详情信息采用 Redis List 存储,每套考题题目存储为一个 list,按题号顺序摆放;
题目详情:key 结构为 exam:detail:{考试 ID},List 中存储的每一道题,以 JSON String 方式存储,其结构为{"number": xx, "score": xx, "content": "xxxxxxxxxxxx"},其中,number 是题目编号,score 是题目的分值,content 是题目的内容。
- 学生答题流程图:
https://www.processon.com/view/link/615099c6e0b34d69dd7d9050
- 请求试卷:5w/s,提交试卷:1800/s,
采用哨兵机制,要求考虑高可用,则哨兵节点考虑为 3 个,当其中两个节点都认为主库宕机时,投票选出新的主库,从库数量设置为 5 个,单个节点承担 1w/s 的读请求。