疯狂的狮子li
2021-09-03 04c03d7ab7231eeb75683183460eb538c64846ac
add RedisCache 工具类 增加 发布订阅工具
已修改1个文件
36 ■■■■■ 文件已修改
ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java
@@ -5,8 +5,12 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
/**
 * spring redis 工具类
@@ -21,6 +25,36 @@
    private RedissonClient redissonClient;
    /**
     * 发布通道消息
     *
     * @param channelKey 通道key
     * @param msg 发送数据
     * @param consumer 自定义处理
     */
    public <T> void publish(String channelKey, T msg, Consumer consumer) {
        RTopic topic = redissonClient.getTopic(channelKey);
        topic.publish(msg);
        consumer.accept(msg);
    }
    public <T> void publish(String channelKey, T msg) {
        RTopic topic = redissonClient.getTopic(channelKey);
        topic.publish(msg);
    }
    /**
     * 订阅通道接收消息
     *
     * @param channelKey 通道key
     * @param clazz 消息类型
     * @param consumer 自定义处理
     */
    public <T> void subscribe(String channelKey, Class<T> clazz, Consumer consumer) {
        RTopic topic = redissonClient.getTopic(channelKey);
        topic.addListener(clazz, (channel, msg) -> consumer.accept(msg));
    }
    /**
     * 缓存基本的对象,Integer、String、实体类等
     *
     * @param key   缓存的键值