update 更新 RedisUtils 增加 注册监听器方法

This commit is contained in:
疯狂的狮子li 2021-12-06 20:22:45 +08:00
parent 1445d6d24a
commit bcbc7c1d47

View File

@ -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);