mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 08:13:44 +08:00 
			
		
		
		
	update 更新 RedisUtils 增加 注册监听器方法
This commit is contained in:
		@@ -94,8 +94,8 @@ public class RedisUtils {
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 缓存基本的对象,保留当前对象 TTL 有效期
 | 
					     * 缓存基本的对象,保留当前对象 TTL 有效期
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param key   缓存的键值
 | 
					     * @param key       缓存的键值
 | 
				
			||||||
     * @param value 缓存的值
 | 
					     * @param value     缓存的值
 | 
				
			||||||
     * @param isSaveTtl 是否保留TTL有效期(例如: set之前ttl剩余90 set之后还是为90)
 | 
					     * @param isSaveTtl 是否保留TTL有效期(例如: set之前ttl剩余90 set之后还是为90)
 | 
				
			||||||
     * @since Redis 6.X 以上使用 setAndKeepTTL 兼容 5.X 方案
 | 
					     * @since Redis 6.X 以上使用 setAndKeepTTL 兼容 5.X 方案
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
@@ -128,6 +128,19 @@ public class RedisUtils {
 | 
				
			|||||||
        result.expire(timeout, timeUnit);
 | 
					        result.expire(timeout, timeUnit);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 注册对象监听器
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param key      缓存的键值
 | 
				
			||||||
 | 
					     * @param listener 监听器配置
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static <T> void addObjectListener(final String key, final ObjectListener listener) {
 | 
				
			||||||
 | 
					        RBucket<T> result = CLIENT.getBucket(key);
 | 
				
			||||||
 | 
					        result.addListener(listener);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 设置有效时间
 | 
					     * 设置有效时间
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
@@ -177,19 +190,16 @@ public class RedisUtils {
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 删除单个对象
 | 
					     * 删除单个对象
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param key
 | 
					     * @param key 缓存的键值
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static boolean deleteObject(final String key) {
 | 
					    public static boolean deleteObject(final String key) {
 | 
				
			||||||
        return CLIENT.getBucket(key).delete();
 | 
					        return CLIENT.getBucket(key).delete();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 删除集合对象
 | 
					     * 删除集合对象
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param collection 多个对象
 | 
					     * @param collection 多个对象
 | 
				
			||||||
     * @return
 | 
					 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static void deleteObject(final Collection collection) {
 | 
					    public static void deleteObject(final Collection collection) {
 | 
				
			||||||
        RBatch batch = CLIENT.createBatch();
 | 
					        RBatch batch = CLIENT.createBatch();
 | 
				
			||||||
@@ -211,6 +221,19 @@ public class RedisUtils {
 | 
				
			|||||||
        return rList.addAll(dataList);
 | 
					        return rList.addAll(dataList);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 注册List监听器
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param key      缓存的键值
 | 
				
			||||||
 | 
					     * @param listener 监听器配置
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static <T> void addListListener(final String key, final ObjectListener listener) {
 | 
				
			||||||
 | 
					        RList<T> rList = CLIENT.getList(key);
 | 
				
			||||||
 | 
					        rList.addListener(listener);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 获得缓存的list对象
 | 
					     * 获得缓存的list对象
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
@@ -234,11 +257,24 @@ public class RedisUtils {
 | 
				
			|||||||
        return rSet.addAll(dataSet);
 | 
					        return rSet.addAll(dataSet);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 注册Set监听器
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param key      缓存的键值
 | 
				
			||||||
 | 
					     * @param listener 监听器配置
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static <T> void addSetListener(final String key, final ObjectListener listener) {
 | 
				
			||||||
 | 
					        RSet<T> rSet = CLIENT.getSet(key);
 | 
				
			||||||
 | 
					        rSet.addListener(listener);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 获得缓存的set
 | 
					     * 获得缓存的set
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param key
 | 
					     * @param key 缓存的key
 | 
				
			||||||
     * @return
 | 
					     * @return set对象
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static <T> Set<T> getCacheSet(final String key) {
 | 
					    public static <T> Set<T> getCacheSet(final String key) {
 | 
				
			||||||
        RSet<T> rSet = CLIENT.getSet(key);
 | 
					        RSet<T> rSet = CLIENT.getSet(key);
 | 
				
			||||||
@@ -248,8 +284,8 @@ public class RedisUtils {
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 缓存Map
 | 
					     * 缓存Map
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param key
 | 
					     * @param key     缓存的键值
 | 
				
			||||||
     * @param dataMap
 | 
					     * @param dataMap 缓存的数据
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static <T> void setCacheMap(final String key, final Map<String, T> dataMap) {
 | 
					    public static <T> void setCacheMap(final String key, final Map<String, T> dataMap) {
 | 
				
			||||||
        if (dataMap != null) {
 | 
					        if (dataMap != null) {
 | 
				
			||||||
@@ -258,11 +294,24 @@ public class RedisUtils {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 注册Map监听器
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * key 监听器需开启 `notify-keyspace-events` 等 redis 相关配置
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param key      缓存的键值
 | 
				
			||||||
 | 
					     * @param listener 监听器配置
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static <T> void addMapListener(final String key, final ObjectListener listener) {
 | 
				
			||||||
 | 
					        RMap<String, T> rMap = CLIENT.getMap(key);
 | 
				
			||||||
 | 
					        rMap.addListener(listener);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 获得缓存的Map
 | 
					     * 获得缓存的Map
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param key
 | 
					     * @param key 缓存的键值
 | 
				
			||||||
     * @return
 | 
					     * @return map对象
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static <T> Map<String, T> getCacheMap(final String key) {
 | 
					    public static <T> Map<String, T> getCacheMap(final String key) {
 | 
				
			||||||
        RMap<String, T> rMap = CLIENT.getMap(key);
 | 
					        RMap<String, T> rMap = CLIENT.getMap(key);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user