diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java new file mode 100644 index 000000000..a9144b46c --- /dev/null +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisPubSubController.java @@ -0,0 +1,44 @@ +package com.ruoyi.demo.controller; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.redis.RedisCache; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * Redis 发布订阅 演示案例 + * + * @author Lion Li + */ +@Api(value = "Redis发布订阅 演示案例", tags = {"Redis发布订阅"}) +@RequiredArgsConstructor(onConstructor_ = @Autowired) +@RestController +@RequestMapping("/demo/redis/pubsub") +public class RedisPubSubController { + + private final RedisCache redisCache; + + @ApiOperation("发布消息") + @GetMapping("/pub") + public AjaxResult pub(String key, String value){ + redisCache.publish(key, value, consumer -> { + System.out.println("发布通道 => " + key + ", 发送值 => " + value); + }); + return AjaxResult.success("操作成功"); + } + + @ApiOperation("订阅消息") + @GetMapping("/sub") + public AjaxResult sub(String key){ + redisCache.subscribe(key, String.class, msg -> { + System.out.println("订阅通道 => " + key + ", 接收值 => " + msg.toString()); + }); + return AjaxResult.success("操作成功"); + } + +}