类 CacheUtils

java.lang.Object
org.tio.utils.cache.CacheUtils

public abstract class CacheUtils extends Object
cache使用的一些工具方法,简化业务代码
作者:
tanyaowu
  • 方法详细资料

    • get

      public static <T extends Serializable> T get(Long timeToLiveSeconds, Long timeToIdleSeconds, String cacheKey, FirsthandCreater<T> firsthandCreater)
      根据cacheKey从缓存中获取对象,如果缓存中没有该key对象,则用firsthandCreater获取对象,并将对象用cacheKey存于cache中
      参数:
      timeToLiveSeconds -
      timeToIdleSeconds -
      cacheKey -
      firsthandCreater -
      返回:
    • get

      public static <T extends Serializable> T get(Long timeToLiveSeconds, Long timeToIdleSeconds, String cacheKey, boolean putTempToCacheIfNull, FirsthandCreater<T> firsthandCreater)
      根据cacheKey从缓存中获取对象,如果缓存中没有该key对象,则用firsthandCreater获取对象,并将对象用cacheKey存于cache中 timeToLiveSeconds和timeToIdleSeconds一个传null一个传值
      参数:
      timeToLiveSeconds -
      timeToIdleSeconds -
      cacheKey - 请业务侧保证cacheKey的唯一性,建议的做法是由prefix + key组成,譬如"user.124578",其中user就是prefix,124578就是key
      putTempToCacheIfNull - 当FirsthandCreater获取不到对象时,是否使用临时对象,以防缓存攻击。true:可以防止缓存null攻击
      firsthandCreater -
      返回:
    • get

      public static <T extends Serializable> T get(ICache cache, String cacheKey, FirsthandCreater<T> firsthandCreater)
      根据cacheKey从缓存中获取对象,如果缓存中没有该key对象,则用firsthandCreater获取对象,并将对象用cacheKey存于cache中
      参数:
      cache -
      cacheKey -
      firsthandCreater -
      返回:
    • get

      public static <T extends Serializable> T get(ICache cache, String cacheKey, boolean putTempToCacheIfNull, FirsthandCreater<T> firsthandCreater)
      根据cacheKey从缓存中获取对象,如果缓存中没有该key对象,则用firsthandCreater获取对象,并将对象用cacheKey存于cache中
      参数:
      cache -
      cacheKey -
      putTempToCacheIfNull - 当FirsthandCreater获取不到对象时,是否使用临时对象,以防缓存攻击。true:可以防止缓存null攻击
      firsthandCreater -
      返回:
    • get

      public static <T extends Serializable> T get(ICache cache, String cacheKey, boolean putTempToCacheIfNull, FirsthandCreater<T> firsthandCreater, Long readTimeoutWithSeconds)
      类型参数:
      T -
      参数:
      cache -
      cacheKey -
      putTempToCacheIfNull -
      firsthandCreater -
      readTimeoutWithSeconds - 获取读锁的超时时间
      返回:
    • getCaffeineCache

      public static CaffeineCache getCaffeineCache(Long timeToLiveSeconds, Long timeToIdleSeconds)
      根据参数获取或创建CaffeineCache对象
      参数:
      timeToLiveSeconds -
      timeToIdleSeconds -
      返回:
    • getCaffeineRedisCache

      public static CaffeineRedisCache getCaffeineRedisCache(org.redisson.api.RedissonClient redisson, Long timeToLiveSeconds, Long timeToIdleSeconds)
    • main

      public static void main(String[] args)