写点什么

架构实战营模块四作业

作者:张Dave
  • 2023-01-02
    四川
  • 本文字数:519 字

    阅读完需:约 2 分钟

【作业要求】

基于模块 4 第 6 课的估算结果和 Redis sentinel 的初步方案设计,完善考试试卷存储方案,具体包括:

• 完善 Redis 的数据结构设计,明确具体使用哪种 Redis 数据结构。

• 设计具体的读写流程(可以文字描述也可以序列图描述,序列图要有文字辅助说明)。

• 对照模块 4 第 6 课的性能估算结果,计算 Redis sentinel 集群的服务器数量和性能。


数据结构设计

试卷使用 hash 类型存储

key:学校 ID+学院 ID+专业 ID+科目 ID+学期 ID

value:试卷内容

设计说明:学校 ID 是为了方便后续学校扩展,学期 ID 是因为一个科目有可能有多个学期


考试结果也采用 hash 类型存储

key:学校 ID+学院 ID+专业 ID+科目 ID+学期 ID+学生 ID

value:试卷内容

设计说明:key 的规则增加了学生 ID

读写流程设计

由于是千万级学生系统,因此必须要使用存储缓存:

  1. 【写】老师设计试卷,上传至试卷系统,系统根据 key 的组成规则生成试卷记录。系统根据老师设计的考试时间,提前半小时将试卷加载到 redis 缓存中,缓存有效期为 2 小时。

  2. 【读】学生考试,登录试卷系统,根据 key 原则自动获取对应试卷。

  3. 【写】学生考试结束,上传试卷,系统根据考试结果 key 生成规则,生成 key 并记录在 redis,然后持久化


服务器数量和性能

使用主从架构,一台主,两台从,三台 sentinel,满足 QPS=5W 的要求


用户头像

张Dave

关注

还未添加个人签名 2021-02-09 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块四作业_张Dave_InfoQ写作社区