写点什么

千万级学生管理系统的考试试卷存储方案

作者:奔奔
  • 2021 年 11 月 21 日
  • 本文字数:452 字

    阅读完需:约 1 分钟

1、采用 Redis sentinel 的初步方案设计



2、细化 Redis sentinel 设计方案

分析:

  • Redis 1C 1GB 主从版,提供 8w QPS

  • 请求试卷:1000 万 * 20(课)/ 20(周末不考试) / 4(每天 4 堂考试)/ 1 分钟 = 250 万请求/分钟 ≈ 5 万/每秒。

  • 少于两个节点,就没必要上 sentinel

所以方案如下



2.1 采用 1 个 master,2 个 slave,来保证 redis 数据的高可用

2.2master 和 slave 服务器上分别部署上 sentinel ,来保证 master 的高可用


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

分析:redis 负责试卷的存储和访问

redis 存储方案设计 - -试卷访问

【数据结构设计】

Key:学校 ID + 学院 ID + 系别 ID+年级 ID+序号。

List:试卷信息。

【读写分析】

  1. 学生登录后,查看试卷时,会根据需要学校 ID + 学院 ID + 系别 ID+年级 ID+序号,请求获取数据信息;


redis 存储方案设计 - -试卷存储

【数据结构设计】

Key:学校 ID + 学院 ID + 系别 ID+年级 ID+序号+学号 ID。

zset: 试卷答案。

score: 试卷分数

【读写分析】

  1. 由于试卷答案不能重复,且只能提交一次,所以使用 zset,

  2. 老师阅卷后可以修改 score 进行打分。方便排序

用户头像

奔奔

关注

还未添加个人签名 2020.07.20 加入

还未添加个人简介

评论

发布
暂无评论
千万级学生管理系统的考试试卷存储方案