redis订阅发布场景的使用方法
1、第一步:创建一个简单springboot项目,引入redis依赖,
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis-reactive</artifactId>
</dependency>

2、第二步:写一个类,并在类里面注入redis,代码如下:
@Autowired
private RedisTemplate<String, Object> redisTemplate;

3、第三步:编写一个异步Timing类,并写一个方法,用于接收redis的list数据,代码如下:
@Component
@Async
public class Timing{
@Async
public void popMsg() throws Exception{
while (true){
long size = redisTemplate.opsForList().size("querys");
if(size != 0){
//绑定操作
BoundListOperations<String, Object> boundValueOperations = redisTemplate.boundListOps("querys");
Object o = boundValueOperations.leftPop();
log.info("消息队列的链接: {}, 当前 长度: {}", o, size);
}
Thread.sleep(1000);
}
}
}

4、第四步:写一个redis存数据的接口,redis数据类型是list,代码如下:
redisTemplate.opsForList().rightPush("querys", value);

5、第五步:写个简简单单的前端页面,用于发送数据,代码如下:
<a href="#" id="x2">发送数据</a>
<script src="lib/jquery-3.4.1/jquery-3.4.1.min.js"></script>
<script>
let i = 0;
$("#x2").click(function () {
$.ajax({
url: 'http://localhost:8081/queryDemo',
type: 'post',
data:{
value: 'i = ' + i++
},
success:function (data) {
}
})
})
</script>

6、第六步:接收数据的接口,代码如下:
@PostMapping("/queryDemo")
String queryDemo(String value){
System.out.println("接收到的数据:"+ value);
redisTemplate.opsForList().rightPush("querys", value);
return "ok";
}

7、第七步:启动项目,打开html页面发送数据,可以看到redis里面的数据已经被消费了,如图:


声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:23
阅读量:78
阅读量:135
阅读量:64
阅读量:31