All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.hutool.cache.CacheUtil Maven / Gradle / Ivy

Go to download

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

There is a newer version: 5.8.34
Show newest version
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