mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-03-22 21:39:01 +08:00
@@ -269,7 +269,7 @@ public class RedisUtils {
|
|||||||
*
|
*
|
||||||
* @param key 缓存的键值
|
* @param key 缓存的键值
|
||||||
* @param dataList 待缓存的List数据
|
* @param dataList 待缓存的List数据
|
||||||
* @return 操作是否成功
|
* @return 缓存的对象
|
||||||
*/
|
*/
|
||||||
public static <T> boolean setCacheList(final String key, final List<T> dataList) {
|
public static <T> boolean setCacheList(final String key, final List<T> dataList) {
|
||||||
RList<T> rList = CLIENT.getList(key);
|
RList<T> rList = CLIENT.getList(key);
|
||||||
@@ -281,43 +281,13 @@ public class RedisUtils {
|
|||||||
*
|
*
|
||||||
* @param key 缓存的键值
|
* @param key 缓存的键值
|
||||||
* @param data 待缓存的数据
|
* @param data 待缓存的数据
|
||||||
* @return 操作是否成功
|
* @return 缓存的对象
|
||||||
*/
|
*/
|
||||||
public static <T> boolean addCacheList(final String key, final T data) {
|
public static <T> boolean addCacheList(final String key, final T data) {
|
||||||
RList<T> rList = CLIENT.getList(key);
|
RList<T> rList = CLIENT.getList(key);
|
||||||
return rList.add(data);
|
return rList.add(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 向缓存List首部插入数据
|
|
||||||
*
|
|
||||||
* @param key 缓存的键值
|
|
||||||
* @param data 待插入到列表首部的最新数据
|
|
||||||
*/
|
|
||||||
public static <T> void addCacheListToFirst(final String key, final T data) {
|
|
||||||
RList<T> rList = CLIENT.getList(key);
|
|
||||||
rList.addFirst(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 向缓存List首部插入数据并限制列表最大长度
|
|
||||||
* (超出长度时自动删除列表末尾最旧的数据,保证列表只保留最新的N条)
|
|
||||||
*
|
|
||||||
* @param key 缓存的键值
|
|
||||||
* @param data 待插入到列表首部的最新数据
|
|
||||||
* @param maxSize 列表允许的最大长度(超出该长度则删除末尾数据)
|
|
||||||
*/
|
|
||||||
public static <T> void addCacheListToFirst(final String key, final T data, int maxSize) {
|
|
||||||
RList<T> rList = CLIENT.getList(key);
|
|
||||||
rList.addFirst(data);
|
|
||||||
// 若列表长度超出最大限制,删除末尾最旧的数据
|
|
||||||
// 注:remove(index)会删除指定索引的元素,此处删除maxSize索引(即第maxSize+1条)
|
|
||||||
while (rList.size() > maxSize) {
|
|
||||||
// 循环删除直到列表长度符合限制(防止并发场景下多次插入导致长度超限)
|
|
||||||
rList.remove(maxSize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 注册List监听器
|
* 注册List监听器
|
||||||
* <p>
|
* <p>
|
||||||
@@ -566,22 +536,24 @@ public class RedisUtils {
|
|||||||
* chunkSize-设置每次扫描的块大小(默认为0,本方法设置为1000)
|
* chunkSize-设置每次扫描的块大小(默认为0,本方法设置为1000)
|
||||||
* type-设置键的类型(默认为null,查询全部类型)
|
* type-设置键的类型(默认为null,查询全部类型)
|
||||||
* </P>
|
* </P>
|
||||||
|
* @see KeysScanOptions
|
||||||
* @param pattern 字符串前缀
|
* @param pattern 字符串前缀
|
||||||
* @return 对象列表
|
* @return 对象列表
|
||||||
*/
|
*/
|
||||||
public static Collection<String> keys(final String pattern) {
|
public static Collection<String> keys(final String pattern) {
|
||||||
return keys(KeysScanOptions.defaults().pattern(pattern).chunkSize(1000));
|
return keys(KeysScanOptions.defaults().pattern(pattern).chunkSize(1000));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过扫描参数获取缓存的基本对象列表
|
* 通过扫描参数获取缓存的基本对象列表
|
||||||
* @param keysScanOptions 扫描参数
|
* @param keysScanOptions 扫描参数
|
||||||
* <P>
|
* <P>
|
||||||
* limit-设置扫描的限制数量(默认为0,查询全部)
|
* limit-设置扫描的限制数量(默认为0,查询全部)
|
||||||
* pattern-设置键的匹配模式(默认为null)
|
* pattern-设置键的匹配模式(默认为null)
|
||||||
* chunkSize-设置每次扫描的块大小(默认为0)
|
* chunkSize-设置每次扫描的块大小(默认为0)
|
||||||
* type-设置键的类型(默认为null,查询全部类型)
|
* type-设置键的类型(默认为null,查询全部类型)
|
||||||
* </P>
|
* </P>
|
||||||
|
* @see KeysScanOptions
|
||||||
*/
|
*/
|
||||||
public static Collection<String> keys(final KeysScanOptions keysScanOptions) {
|
public static Collection<String> keys(final KeysScanOptions keysScanOptions) {
|
||||||
Stream<String> keysStream = CLIENT.getKeys().getKeysStream(keysScanOptions);
|
Stream<String> keysStream = CLIENT.getKeys().getKeysStream(keysScanOptions);
|
||||||
|
|||||||
Reference in New Issue
Block a user