类 CacheChannel

java.lang.Object
net.oschina.j2cache.CacheChannel
所有已实现的接口:
Closeable, AutoCloseable

public abstract class CacheChannel extends Object implements Closeable, AutoCloseable
Cache Channel, the J2Cache methods explored to developers
作者:
Winter Lau(javayou@gmail.com)
  • 构造器详细资料

  • 方法详细资料

    • sendClearCmd

      protected abstract void sendClearCmd(String region)

      Just for Inner Use.

      To clear the whole region when received this event .

      参数:
      region - Cache region name
    • sendEvictCmd

      protected abstract void sendEvictCmd(String region, String... keys)

      Just for Inner Use.

      To remove cached data when received this event .

      参数:
      region - Cache region name
      keys - Cache data key
    • get

      public CacheObject get(String region, String key, boolean... cacheNullObject)
      读取缓存(用户无需判断返回的对象是否为空)
      参数:
      region - Cache region name
      key - Cache data key
      cacheNullObject - 是否缓存空对象
      返回:
      cache object
    • get

      public CacheObject get(String region, String key, Function<String,Object> loader, boolean... cacheNullObject)
      支持外部数据自动加载的缓存方法
      参数:
      region - Cache region name
      key - Cache data key
      loader - data loader
      cacheNullObject - true if you need to cache null object
      返回:
      cache object
    • get

      public Map<String,CacheObject> get(String region, Collection<String> keys)
      批量读取缓存中的对象(用户无需判断返回的对象是否为空)
      参数:
      region - Cache region name
      keys - cache keys
      返回:
      cache object
    • get

      public Map<String,CacheObject> get(String region, Collection<String> keys, Function<String,Object> loader, boolean... cacheNullObject)
      使用数据加载器的批量缓存读取
      参数:
      region - Cache region name
      keys - cache keys
      loader - data loader
      cacheNullObject - true if you need to cache null object
      返回:
      multiple cache data
    • exists

      public boolean exists(String region, String key)
      判断某个缓存键是否存在
      参数:
      region - Cache region name
      key - cache key
      返回:
      true if key exists
    • check

      public int check(String region, String key)
      判断某个key存在于哪级的缓存中
      参数:
      region - cache region
      key - cache key
      返回:
      0(不存在),1(一级),2(二级)
    • set

      public void set(String region, String key, Object value)
      Write data to J2Cache
      参数:
      region - : Cache Region name
      key - : Cache key
      value - : Cache value
    • set

      public void set(String region, String key, Object value, boolean cacheNullObject)
      Write data to J2Cache
      参数:
      region - : Cache Region name
      key - : Cache key
      value - : Cache value
      cacheNullObject - if allow cache null object
    • set

      public void set(String region, String key, Object value, long timeToLiveInSeconds)
      Write data to j2cache with expired setting 注意:强烈不推荐使用带 TTL 的 set 方法,所有的缓存 TTL 都应该预先配置好,避免多个节点的缓存 Region 配置不同步
      参数:
      region - Cache Region name
      key - Cache Key
      value - Cache value
      timeToLiveInSeconds - cache expired in second
    • set

      public void set(String region, String key, Object value, long timeToLiveInSeconds, boolean cacheNullObject)
      Write data to j2cache with expired setting 注意:强烈不推荐使用带 TTL 的 set 方法,所有的缓存 TTL 都应该预先配置好,避免多个节点的缓存 Region 配置不同步
      参数:
      region - Cache Region name
      key - Cache Key
      value - Cache value
      timeToLiveInSeconds - cache expired in second
      cacheNullObject - if allow cache null object
    • set

      public void set(String region, Map<String,Object> elements)
      批量插入数据
      参数:
      region - Cache Region name
      elements - Cache Elements
    • set

      public void set(String region, Map<String,Object> elements, boolean cacheNullObject)
      批量插入数据
      参数:
      region - Cache Region name
      elements - Cache Elements
      cacheNullObject - if allow cache null object
    • set

      public void set(String region, Map<String,Object> elements, long timeToLiveInSeconds)
      带失效时间的批量缓存数据插入 注意:强烈不推荐使用带 TTL 的 set 方法,所有的缓存 TTL 都应该预先配置好,避免多个节点的缓存 Region 配置不同步
      参数:
      region - Cache Region name
      elements - Cache Elements
      timeToLiveInSeconds - cache expired in second
    • set

      public void set(String region, Map<String,Object> elements, long timeToLiveInSeconds, boolean cacheNullObject)
      带失效时间的批量缓存数据插入 注意:强烈不推荐使用带 TTL 的 set 方法,所有的缓存 TTL 都应该预先配置好,避免多个节点的缓存 Region 配置不同步
      参数:
      region - Cache Region name
      elements - Cache Elements
      timeToLiveInSeconds - cache expired in second
      cacheNullObject - if allow cache null object
    • evict

      public void evict(String region, String... keys)
      Remove cached data in J2Cache
      参数:
      region - : Cache Region name
      keys - : Cache key
    • clear

      public void clear(String region)
      Clear the cache
      参数:
      region - : Cache region name
    • regions

      public Collection<CacheChannel.Region> regions()
      返回所有的缓存区域
      返回:
      all the regions
    • removeRegion

      public void removeRegion(String region)
      删除缓存 Region
      参数:
      region - Cache Region Name
    • keys

      public Collection<String> keys(String region)

      Get cache region keys

      Notice: ehcache3 not support keys

      参数:
      region - : Cache region name
      返回:
      key list
    • close

      public void close()
      Close J2Cache
      指定者:
      close 在接口中 AutoCloseable
      指定者:
      close 在接口中 Closeable
    • getL1Provider

      public CacheProvider getL1Provider()
      获取一级缓存接口
      返回:
      返回一级缓存的 CacheProvider 实例
    • getL2Provider

      public CacheProvider getL2Provider()

      获取二级缓存的接口,该方法可用来直接获取 J2Cache 底层的 Redis 客户端实例

      方法如下:

      CacheChannel channel = J2Cache.getChannel(); RedisClient client = ((RedisCacheProvider)channel.getL2Provider()).getRedisClient(); try { client.get().xxxxx(...); } finally { client.release(); }
      返回:
      返回二级缓存的 CacheProvider 实例