public abstract class CacheChannel extends Object implements Closeable, AutoCloseable
Modifier and Type | Class and Description |
---|---|
static class |
CacheChannel.Region
Cache Region Define
|
Constructor and Description |
---|
CacheChannel(J2CacheConfig config,
CacheProviderHolder holder) |
Modifier and Type | Method and Description |
---|---|
int |
check(String region,
String key)
判断某个key存在于哪级的缓存中
|
void |
clear(String region)
Clear the cache
|
void |
close()
Close J2Cache
|
void |
evict(String region,
String... keys)
Remove cached data in J2Cache
|
boolean |
exists(String region,
String key)
判断某个缓存键是否存在
|
Map<String,CacheObject> |
get(String region,
Collection<String> keys)
批量读取缓存中的对象(用户无需判断返回的对象是否为空)
|
Map<String,CacheObject> |
get(String region,
Collection<String> keys,
Function<String,Object> loader,
boolean... cacheNullObject)
使用数据加载器的批量缓存读取
|
CacheObject |
get(String region,
String key,
boolean... cacheNullObject)
读取缓存(用户无需判断返回的对象是否为空)
|
CacheObject |
get(String region,
String key,
Function<String,Object> loader,
boolean... cacheNullObject)
支持外部数据自动加载的缓存方法
|
CacheProvider |
getL1Provider()
获取一级缓存接口
|
CacheProvider |
getL2Provider()
获取二级缓存的接口,该方法可用来直接获取 J2Cache 底层的 Redis 客户端实例
|
Collection<String> |
keys(String region)
Get cache region keys
|
Collection<CacheChannel.Region> |
regions()
返回所有的缓存区域
|
void |
removeRegion(String region)
删除缓存 Region
|
protected abstract void |
sendClearCmd(String region)
Just for Inner Use.
|
protected abstract void |
sendEvictCmd(String region,
String... keys)
Just for Inner Use.
|
void |
set(String region,
Map<String,Object> elements)
批量插入数据
|
void |
set(String region,
Map<String,Object> elements,
boolean cacheNullObject)
批量插入数据
|
void |
set(String region,
Map<String,Object> elements,
long timeToLiveInSeconds)
带失效时间的批量缓存数据插入
注意:强烈不推荐使用带 TTL 的 set 方法,所有的缓存 TTL 都应该预先配置好,避免多个节点的缓存 Region 配置不同步
|
void |
set(String region,
Map<String,Object> elements,
long timeToLiveInSeconds,
boolean cacheNullObject)
带失效时间的批量缓存数据插入
注意:强烈不推荐使用带 TTL 的 set 方法,所有的缓存 TTL 都应该预先配置好,避免多个节点的缓存 Region 配置不同步
|
void |
set(String region,
String key,
Object value)
Write data to J2Cache
|
void |
set(String region,
String key,
Object value,
boolean cacheNullObject)
Write data to J2Cache
|
void |
set(String region,
String key,
Object value,
long timeToLiveInSeconds)
Write data to j2cache with expired setting
注意:强烈不推荐使用带 TTL 的 set 方法,所有的缓存 TTL 都应该预先配置好,避免多个节点的缓存 Region 配置不同步
|
void |
set(String region,
String key,
Object value,
long timeToLiveInSeconds,
boolean cacheNullObject)
Write data to j2cache with expired setting
注意:强烈不推荐使用带 TTL 的 set 方法,所有的缓存 TTL 都应该预先配置好,避免多个节点的缓存 Region 配置不同步
|
public CacheChannel(J2CacheConfig config, CacheProviderHolder holder)
protected abstract void sendClearCmd(String region)
Just for Inner Use.
To clear the whole region when received this event .
region
- Cache region nameprotected abstract void sendEvictCmd(String region, String... keys)
Just for Inner Use.
To remove cached data when received this event .
region
- Cache region namekeys
- Cache data keypublic CacheObject get(String region, String key, boolean... cacheNullObject)
region
- Cache region namekey
- Cache data keycacheNullObject
- 是否缓存空对象public CacheObject get(String region, String key, Function<String,Object> loader, boolean... cacheNullObject)
region
- Cache region namekey
- Cache data keyloader
- data loadercacheNullObject
- true if you need to cache null objectpublic Map<String,CacheObject> get(String region, Collection<String> keys)
region
- Cache region namekeys
- cache keyspublic Map<String,CacheObject> get(String region, Collection<String> keys, Function<String,Object> loader, boolean... cacheNullObject)
region
- Cache region namekeys
- cache keysloader
- data loadercacheNullObject
- true if you need to cache null objectpublic boolean exists(String region, String key)
region
- Cache region namekey
- cache keypublic int check(String region, String key)
region
- cache regionkey
- cache keypublic void set(String region, String key, Object value)
region:
- Cache Region namekey:
- Cache keyvalue:
- Cache valuepublic void set(String region, String key, Object value, boolean cacheNullObject)
region:
- Cache Region namekey:
- Cache keyvalue:
- Cache valuecacheNullObject
- if allow cache null objectpublic void set(String region, String key, Object value, long timeToLiveInSeconds)
region
- Cache Region namekey
- Cache Keyvalue
- Cache valuetimeToLiveInSeconds
- cache expired in secondpublic void set(String region, String key, Object value, long timeToLiveInSeconds, boolean cacheNullObject)
region
- Cache Region namekey
- Cache Keyvalue
- Cache valuetimeToLiveInSeconds
- cache expired in secondcacheNullObject
- if allow cache null objectpublic void set(String region, Map<String,Object> elements)
region
- Cache Region nameelements
- Cache Elementspublic void set(String region, Map<String,Object> elements, boolean cacheNullObject)
region
- Cache Region nameelements
- Cache ElementscacheNullObject
- if allow cache null objectpublic void set(String region, Map<String,Object> elements, long timeToLiveInSeconds)
region
- Cache Region nameelements
- Cache ElementstimeToLiveInSeconds
- cache expired in secondpublic void set(String region, Map<String,Object> elements, long timeToLiveInSeconds, boolean cacheNullObject)
region
- Cache Region nameelements
- Cache ElementstimeToLiveInSeconds
- cache expired in secondcacheNullObject
- if allow cache null objectpublic void evict(String region, String... keys)
region:
- Cache Region namekeys:
- Cache keypublic void clear(String region)
region:
- Cache region namepublic Collection<CacheChannel.Region> regions()
public void removeRegion(String region)
region
- Cache Region Namepublic Collection<String> keys(String region)
Get cache region keys
Notice: ehcache3 not support keys
region:
- Cache region namepublic void close()
close
in interface Closeable
close
in interface AutoCloseable
public CacheProvider getL1Provider()
public CacheProvider getL2Provider()
获取二级缓存的接口,该方法可用来直接获取 J2Cache 底层的 Redis 客户端实例
方法如下:
CacheChannel channel = J2Cache.getChannel();
RedisClient client = ((RedisCacheProvider)channel.getL2Provider()).getRedisClient();
try {
client.get().xxxxx(...);
} finally {
client.release();
}
Copyright © 2018. All rights reserved.