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

com.dahuatech.hutool.cache.CacheUtil Maven / Gradle / Ivy

package com.dahuatech.hutool.cache;

import com.dahuatech.hutool.cache.impl.*;

/**
 * 缓存工具类
 *
 * @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 过期时长,单位:毫秒
   * @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