• 最新论文
  • 全是套路:英国消费者协会发现黑五折扣只有5%是真的 暴徒非法集会被齐声痛骂 市民高呼:阿Sir加油(图) 对话朱民:全球经济步入日本式衰退 关注中国结构调整 商务部:11月我国进出口总额达28.5万亿 增长2.4% 泰士兵枪击案已致30死 幸存者:美好日子成灾难日 鲨鱼闯入三亚海滩咬人?警方:实为受伤鲸鱼搁浅 对话朱民:全球经济步入日本式衰退 关注中国结构调整 暴徒非法集会被齐声痛骂 市民高呼:阿Sir加油(图) 又撞脸啦!看出《爱的迫降》徐智慧和裴珠泫长得这么像了吗? 央行宣布降准0.5% 一文看懂对自己钱袋子有何影响 央行宣布降准0.5% 一文看懂对自己钱袋子有何影响 Redis实战(6)-数据结构Set实战之获取随机乱序唯一的试卷题目 央行宣布降准0.5% 一文看懂对自己钱袋子有何影响
  • 推荐论文
  • 全是套路:英国消费者协会发现黑五折扣只有5%是真的 暴徒非法集会被齐声痛骂 市民高呼:阿Sir加油(图) 对话朱民:全球经济步入日本式衰退 关注中国结构调整 商务部:11月我国进出口总额达28.5万亿 增长2.4% 泰士兵枪击案已致30死 幸存者:美好日子成灾难日 鲨鱼闯入三亚海滩咬人?警方:实为受伤鲸鱼搁浅 对话朱民:全球经济步入日本式衰退 关注中国结构调整 暴徒非法集会被齐声痛骂 市民高呼:阿Sir加油(图) 又撞脸啦!看出《爱的迫降》徐智慧和裴珠泫长得这么像了吗? 央行宣布降准0.5% 一文看懂对自己钱袋子有何影响 央行宣布降准0.5% 一文看懂对自己钱袋子有何影响 Redis实战(6)-数据结构Set实战之获取随机乱序唯一的试卷题目 央行宣布降准0.5% 一文看懂对自己钱袋子有何影响
  • 热门标签
  • 日期归档
  • Redis实战(6)-数据结构Set实战之获取随机乱序唯一的试卷题目

    来源:www.zodiac02.com 发布时间:2020-03-10

    概述:这一系列博客帖子中涉及的相关内容来自debug自己录制的实战教程:缓存中间件Redis技术介绍和实战应用场景(SpringBoot2.x红包系统设计和实战)。感兴趣的合作伙伴可以点击自己学习(毕竟,以视频的形式掌握技术会更快!)?本文属于技术专栏:缓存中间件Reiss技术的介绍和实战

    摘要:缓存中间件Reiss有许多丰富、重要和有趣的数据结构。集合集合是最优秀的集合之一。其核心特征几乎与JavaSE集合系统中的集合相同,即“无序”和“独特”。当我们从set中获取一个元素时,它的底层会随机发送给我们一个元素!在本文中,我们将继续向我们所有的小伙伴介绍和实践另一个典型的业务场景从“测试系统”中获得一个随机的、无序的和独特的测试问题列表。

    内容:“考试”对许多小伙伴来说应该并不陌生,比如小学到初中的考试,高中到大学的考试,大学期间的各种考试,现在许多人报名参加“学科一”考试和各种涉及培训和考证的考试等。我相信每个人或多或少都经历过!

    试卷的核心是“题目”。对于监考人员和监考人员来说,如何降低考试中的“作弊”率是最棘手的问题。我不知道什么时候一个“天才”想出了一个相当有效的方法,那就是“尽量让每个考生得到相同的题目(当然,题目的总数是相同的)”

    现在大多数“在线考试系统”几乎都采用了这种方法。也就是说,当考生成功登录“考试系统”后,每个考生面前呈现的试题几乎是不同的或者是相同的,但是不同考生的试题顺序是完全不同的,也就是说,是有差异的!有时候,仔细考虑这种方法,我不得不说这确实是一种防止考生在对方面前作弊的好方法(TN是个天才!),

    接下来,我们将在“在线考试系统”中,基于缓存中间件Redis的集合实战,实现这种典型的业务场景,即获得一个随机的、唯一的、无序的试卷主题列表。其核心业务流程如下图所示:

    从该业务流程图中,我们主要做两件事:

    a .项目启动后,从数据库中取出所有的试卷题目列表。并将其插入缓存集合

    B,开发一种从缓存中获取随机的、无序的、唯一的n个试题的请求方法,并将其返回给目前成功登录考试系统的考生!

    (1)如果一个工人想做好工作,他必须首先使用他的工具。首先,我们需要建立一个数据库表“试卷主题表”来存储管理员添加的新主题信息。其DDL如下:

    Mybatis逆向工程或代码生成器可用于生成实体实体类、映射器操作接口和映射器. xml,用于操作数据库表的动态SQL。此外,我们还向数据库表中添加了一系列问题(测试用例),如下图所示:

    2接下来,我们开发了一个ProblemService服务类来实现“在项目启动后,转到数据库数据库来提取测试问题列表并将其插入缓存集”!同时,在服务类问题服务中也实现了“随机的、无序的和唯一的来自缓存集合的N通道主题列表”。它的完整源代码如下:

    (3)。之后,我们需要在SetController中开发一个请求方法来实现“考生成功登录后,从缓存集中随机、无序、唯一的N通道主题”。它的完整源代码如下:

    其中,SetService。GetRandom Problems (total)是“从缓存集合中获取随机总轨迹主题列表”,其源代码如下:

    最后,您会发现“Balabala之前说了很多,关键是在SetOperations中调用这个API/方法”:

    即在Redis中对应集合的SRANDMEMBER命令!我们在前面的文章中已经介绍了这个命令的功能和用法,如下图所示:

    最后,我们打开了邮差并对它进行了一系列的测试,如下图所示:

    对Redis相关的技术堆栈和实际应用场景感兴趣的小伙伴可以去课程中心,一个由debug建立的技术社区,学习和观看:程序员实战基地!对于其他相关技术,感兴趣的合作伙伴可以关注底层调试技术的公开数量,共同学习和成长!

    添加:

    1。本文中涉及的相关源代码可以在这个地址找到,并查看以供研究:

    2。目前debug已经将本文涉及的内容编译并录制成视频教程。感兴趣的伙伴可以去观看和学习:

    3。注意调试的微信公众号。最新的技术文章、课程和技术专栏将首先在公共号码上发布。

    友情链接: