写点什么

千万级考试试卷存储方案

作者:张靖
  • 2021 年 11 月 21 日
  • 本文字数:489 字

    阅读完需:约 2 分钟

需求:

考试数据评估:


一、Redis 数据结构设计:

1、试卷题目存储数据结构设计

•      使用 redis String 数据结构 

•      key: 课程号 + 试卷编号(根据场景,每门课程每次考试都有唯一的试卷编号)

•      value: 试卷内容

2、试卷答案存储数据结构设计

•      使用 redis Hash 数据结构 

•      hashKey: 课程号 + 试卷编号

•      hashValue:试卷答案。


二、读写流程


  1. Redis 中存储当天的考试题目,及考试答案。

  2. 考生考试时先从 redis 里读取考试试题

  3. 考生答题完毕,插入考生答题记录到 Redis,并将具体的答题信息写入到 HBASE 中。

  4. 老师评分,查询 Redis,进行评分,并将结果同步到 HBASE 及 MySQL 中。


三、性能估算

1、试卷请求 QPS 约为 5w/s,而单台 Redis QPS 预估 5-10w/s。因此需要考虑对试卷内容进行缓存,同时评估缓存容量。

2、,考虑到单台 Redis 数据量内存为 2-4G,因此 Redis 缓存无需考虑缓存分片,单机存储即可,考虑到高可用需要,Redis 最终方案选择为 Redis Sentinel(两台 Redis:一台主 Redis,一台从 Redis。Sentinel 服务器为三台,配置为 8c16g),对于读写我们也可以采用 bit 方式可以极大节省空间。

用户头像

张靖

关注

还未添加个人签名 2018.09.18 加入

还未添加个人简介

评论

发布
暂无评论
千万级考试试卷存储方案