写点什么

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

用户头像
michael
关注
发布于: 4 小时前

【考试存储性能需求汇总】1.在校学生考试结果存储:2.4T;2.离校学生考试结果存储:每年增长 0.6T;3.试卷请求 QPS:5 万/s;4.提交试卷 TPS:1700/s。

 

Redis 技术特性:redis 是 k-v 存储系统,支持三种部署模式,支持多种数据结构

【技术本质】

1.    in-memory:意味着性能高,但同时意味着数据持久化不是核心,可能丢数据。

2.    data structure store:数据结构存储,而不是关系数据,也不是文件存储。

 

【性能量级】单机 TPS 5~10 万。

【部署模式】


【支持的数据类型】

String、Hash Tables、LinkedLists、Sets、Sorted Set。


【试卷存储的数据结构】

使用 String 类型进行试卷存储,使用年级和课程作为 key。

【试卷读取流程】

客户端与 master 建立连接步骤

1.客户端遍历所有的 Sentinel 节点集合,获取一个可用的 Sentinel 节点。

2.客户端向可用的 Sentinel 节点发送 get-master-addr-by-name 命令,获取 Redis Master 节点。

3.客户端向 Redis Master 节点发送 role 或 role replication 命令,来确定其是否是 Master 节点,并且能够获取其 slave 节点信息。

4.客户端获取到确定的节点信息后,便可以向 Redis 发送命令来进行后续操作了。

5.根据 key 从 master 节点获取数据。

 

【容量预估】

根据性能需求,试卷请求约 5W/s,考虑 20%的提升,约 6W/s。reids 单台的性能能够达到 5-10W tps。Sentinel 集群使用 3 台进行负载,存储使用一个 master 节点,1 个 slave 节点的主从架构即可。

发布于: 4 小时前阅读数: 3
用户头像

michael

关注

还未添加个人签名 2020.12.22 加入

还未添加个人简介

评论

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