千万学生管理系统存储架构设计 --redis 细化
redis 采用 hash 结构 key:试卷
field: 学校编号_年级编号_学期编号_课程编号
value:JSON 格式试卷
读取流程
是否已登录?否 进入登录页面
是 是否已到考试时间?否 进入等待页面
是 是否超过最迟开始时间?是 禁止进入,并提示超时
否 考试是否结束?是,禁进入提示超时
否,显示试卷
服务器数量估算
请求试卷 5 万/秒
大部分情况下得看服务器的性能和配置,机器越牛逼并且配置越高,redis 高并发单机就可以上十几万以上;一般性的配置,redis 提供的高并发,至少到上万是没问题的;
大量网络请求的调用,因为网络本身就有开销,所以 redis 的吞吐量就不一定那么高了。这点可以从单点和读写分离架构可以看出来。根据主从读写架构分离原则,在其他服务器上另外加 redis 从节点,单个从节点读请求 QPS 一般在 5 万左右。
sentinel 至少需要一台主机两台从机。此时,两个 redis 从节点可以承载整个集群读请求 QPS 可以在 10 万以上。可以满足请求试卷 5 万/秒,且有冗余。
所以用 redis sentinel 架构 存储试卷,需要 3 台机器可满足要求
评论