cn.hutool.cache.CacheUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hutool-all Show documentation
Show all versions of hutool-all Show documentation
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
package cn.hutool.cache;
import cn.hutool.cache.impl.FIFOCache;
import cn.hutool.cache.impl.LFUCache;
import cn.hutool.cache.impl.LRUCache;
import cn.hutool.cache.impl.NoCache;
import cn.hutool.cache.impl.TimedCache;
import cn.hutool.cache.impl.WeakCache;
/**
* 缓存工具类
*
* @author Looly
* @since 3.0.1
*/
public class CacheUtil {
/**
* 创建FIFO(first in first out) 先进先出缓存.
*
* @param Key类型
* @param Value类型
* @param capacity 容量
* @param timeout 过期时长,单位:毫秒
* @return {@link FIFOCache}
*/
public static FIFOCache newFIFOCache(int capacity, long timeout) {
return new FIFOCache<>(capacity, timeout);
}
/**
* 创建FIFO(first in first out) 先进先出缓存.
*
* @param Key类型
* @param Value类型
* @param capacity 容量
* @return {@link FIFOCache}
*/
public static FIFOCache newFIFOCache(int capacity) {
return new FIFOCache<>(capacity);
}
/**
* 创建LFU(least frequently used) 最少使用率缓存.
*
* @param Key类型
* @param Value类型
* @param capacity 容量
* @param timeout 过期时长,单位:毫秒
* @return {@link LFUCache}
*/
public static LFUCache newLFUCache(int capacity, long timeout) {
return new LFUCache<>(capacity, timeout);
}
/**
* 创建LFU(least frequently used) 最少使用率缓存.
*
* @param Key类型
* @param Value类型
* @param capacity 容量
* @return {@link LFUCache}
*/
public static LFUCache newLFUCache(int capacity) {
return new LFUCache<>(capacity);
}
/**
* 创建LRU (least recently used)最近最久未使用缓存.
*
* @param Key类型
* @param Value类型
* @param capacity 容量
* @param timeout 过期时长,单位:毫秒
* @return {@link LRUCache}
*/
public static LRUCache newLRUCache(int capacity, long timeout) {
return new LRUCache<>(capacity, timeout);
}
/**
* 创建LRU (least recently used)最近最久未使用缓存.
*
* @param Key类型
* @param Value类型
* @param capacity 容量
* @return {@link LRUCache}
*/
public static LRUCache newLRUCache(int capacity) {
return new LRUCache<>(capacity);
}
/**
* 创建定时缓存,通过定时任务自动清除过期缓存对象
*
* @param Key类型
* @param Value类型
* @param timeout 过期时长,单位:毫秒
* @param schedulePruneDelay 间隔时长,单位毫秒
* @return {@link TimedCache}
* @since 5.8.28
*/
public static TimedCache newTimedCache(long timeout, long schedulePruneDelay) {
final TimedCache cache = newTimedCache(timeout);
cache.schedulePrune(schedulePruneDelay);
return cache;
}
/**
* 创建定时缓存.
*
* @param Key类型
* @param Value类型
* @param timeout 过期时长,单位:毫秒
* @return {@link TimedCache}
*/
public static TimedCache newTimedCache(long timeout) {
return new TimedCache<>(timeout);
}
/**
* 创建弱引用缓存.
*
* @param Key类型
* @param Value类型
* @param timeout 过期时长,单位:毫秒
* @return {@link WeakCache}
* @since 3.0.7
*/
public static WeakCache newWeakCache(long timeout) {
return new WeakCache<>(timeout);
}
/**
* 创建无缓存实现.
*
* @param Key类型
* @param Value类型
* @return {@link NoCache}
*/
public static NoCache newNoCache() {
return new NoCache<>();
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy