public abstract class CacheChannel extends Object implements Closeable, AutoCloseable
| 限定符和类型 | 类和说明 |
|---|---|
static class |
CacheChannel.Region
Cache Region Define
|
| 构造器和说明 |
|---|
CacheChannel(J2CacheConfig config,
CacheProviderHolder holder) |
| 限定符和类型 | 方法和说明 |
|---|---|
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 客户端实例
方法如下:
CacheChannel channel = J2Cache.getChannel();
RedisClient client = ((RedisCacheProvider)channel.getL2Provider()).getRedisClient();
try {
client.get().xxxxx(...);
} finally {
client.release();
}
|
Collection<String> |
keys(String region)
Get cache region keys
Notice: ehcache3 not support 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 在接口中 Closeableclose 在接口中 AutoCloseablepublic 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.