前言
如题,该篇实践教程就是简单的抛砖引玉,通过实现一个简单的排队场景,带着大家熟悉下 redis里list数据结构的相关操作。
正文
在开始编码前,我们先简单了解下该篇实践教程实现 排队场景,
包括哪些功能:
1. 正常排队
2.队伍总人数
3.队伍信息
4.某人离开队伍
5.正常排队完离开队伍
6.某人在队伍的所在位置,前面人数,后面人数
7.插队 (道德不允许,咱们只是做个例子)
开始编码:
ps :怎么整合redis这篇文章就不介绍了,如果还不会的可以看我的这个系列的教程。
为了方便咱们的演示,直接通过写接口调接口的方式。
创建一个MyTestController.java,注入一下RedisTemplate:
/**
* @Author : JCccc
* @CreateTime : 2020/3/27
* @Description :
**/
@Controller
@RequestMapping("/test")
public class MyTestController {
@Autowired
private RedisTemplate redisTemplate;
}
1. 正常排队
/**
* 加入队伍
* @param userId
*/
@ResponseBody
@GetMapping("/addQueue")
public void addQueue(@RequestParam("userId") String userId) {
// redisTemplate.opsForList().leftPush("myQueue",userId);
redisTemplate.opsForList().rightPush("yourQueue",userId);
}
可以看到这个接口里面,我的代码有一行注释的,其实两行低吗都是往队伍里面去添加数据达到 排队加入队伍的功能。
而通过数据顺序来说,我选择使用rightPush,这样更能容易理解排队的原则,先进先出。
那么我们开始调用接口 /addQueue ,看看效果: