架构实战营 - 模块四作业
设计千万级学生管理系统的考试试卷存储方案?
一、Redis sentinel 存储方案设计-考试试卷
【数据结构设计】
key: 学校 ID+课程 ID+试卷 ID
Value: 试卷内容(JSON 序列化)
【读写分析】
1、因每个学校考试试卷为 20(课)*2(次)*3(年)*100(学校数量)*100(套试卷),总共也就 12 万套试卷左右。一台 redis 就能存储。但考虑到读取试卷的时候 QPS 为 5 万/s,需要 1 台 Master,2 台 Slave(redis)。
2、保存 redis 直接写到 master 节点。然后分别复制数据到 2 台从 Slave 节点。
二、Redis sentinel 存储方案设计-试卷请求
【数据结构设计】
key: 学校 ID+课程 ID+试卷 ID
Value: 试卷内容(JSON 序列化)
【读写分析】
1、读取的时候根据学校 ID+课程 ID+试卷 ID 随机从 3 台 redis 读取试卷请求。
2、考虑到主节点有可能挂掉,需要 sentinel 来保证 Master 节点挂掉后,实现主从切换。
评论