写点什么

架构实战训练营存储架构设计

用户头像
Clarke
关注
发布于: 2021 年 08 月 02 日

首先分析性能复杂度,在于开始考试时瞬间读压力比较大,评估下瞬时的 QPS 有 5w/s。

因此要考虑优化读性能。


redis 的数据结构可以采用 List 结构,把试卷按照每个页面的内容的顺序依次

存入这个 List。这样设计的优点在于每次考试开始的时候,只需要读取第一页

的内容。通过 LRANGE key start stop API 来读取每页的内容。key 的话,

就是考卷的 id,可以是学校 id+考试 id(假设每个学校考卷不同)。start stop 就是页码的范围。

写入的时候通过 RPUSH key API 来依次写入考卷的内容。如果需要修改,

可以通过 LSET key index value API 来修改指定的考卷页面的内容。


5w/s 的 qps,可以通过主从架构来满足,考虑到 redis 单机 5w/s 的性能,1 主 1 从就可以了,适当

留点冗余。另外,考虑到读取考卷容易形成热点数据,且考卷内容通常不会在考试时在修改,

可以在业务服务器上增加本地缓存,来进一步减轻 redis 服务器的读取压力。


用户头像

Clarke

关注

还未添加个人签名 2018.04.15 加入

还未添加个人简介

评论

发布
暂无评论
架构实战训练营存储架构设计