写点什么

模块 4- 作业

用户头像
yu
关注
发布于: 2021 年 05 月 22 日
模块4-作业

一、redis 数据结构

Key:paperNo(试卷编号)

Value:Sorted Sets

Sets[0]:score = 0,保存试卷基本信息

{

"paper_no": "<试卷编号>",

"subject_name": "<科目名称>",

"subject_no": "<科目编号>",

"questions_setter": "<出题人>",

"questions_count": "<题目数量>",

"questions_score": "<满分>"

}

Sets[questions_no]:score = 题目编号,保存题目详细信息

{

"type": 1(单选)、2(多选)、3(简答),

"questions":"<题目内容>",

"options":{ // 如果是选择题,则必须有选项信息

A: "<选项 A 的内容>",

B: "<选项 B 的内容>",

C: "<选项 C 的内容>",

D: "<选项 D 的内容>",

............

},

"correct_answer":[abcd], // 选择题必须有正确答案信息

"score":<该题最高得分>

}

二、读写流程



三、服务器数量与性能

结论:

2 台 redis 服务器,一主一从 1 核 16G

3 台 redis sentinel 服务器 1 核 2G


要求:

试卷请求 QPS:5 万/s

提交试卷 TPS:1700/s


这里参考阿里云 redis 服务的 benchmark。

https://help.aliyun.com/document_detail/145227.html?spm=a2c4g.11186623.6.585.5bc972baT07hqb


根据图上所述,单副本 QPS 为 8w。

考虑到测试模型与实际可能不同,数据有些许偏差,再考虑性能冗余。因此读请求使用 2 台服务器比较合适。

写请求数量级比读请求少一个级别,考虑到 redis 写不是一个性能瓶颈,对内存的读和写效率是差不多的。因此一台主节点可以抗住 1700/s 的 TPS。


用户头像

yu

关注

还未添加个人签名 2018.05.22 加入

还未添加个人简介

评论

发布
暂无评论
模块4-作业