架构师训练营模块 4 作业
redis 数据结构采用 hash。试卷很少会修改,但是考试前 1 分钟瞬时读取量比较大,采用 hash 数据结构读数据的时间复杂度为 O(1)。
读写流程
教师将考试的试卷信息录入到系统中,“年级-科目-试卷类型”作为 hash key, value 存储试卷的存储位置。
考试的前 5 分钟,学生进入系统,拉取试卷。
系统从通过学生的年级,考试的科目,试卷的类型信息在 redis 中获取相应的试卷位置。
系统从指定的存储位置(服务器本地文件,或分布式文件存储)拉取试卷。
页面展示试卷信息。
3. 请求试卷的 qps 为 5 万/秒, redis 一主一从可以支撑峰值查询。同时采用哨兵模式,因为考卷存储的哨兵并不需要保证高可用(考卷查询为固定时间点,如果哨兵节点坏了并不影响考试进程,可以后续修复),所以采用一个节点。最终我们采用 3 个节点,一个哨兵节点,一个主,一个从。
评论