public class StandaloneCacheMap<K,V> extends java.lang.Object implements FineCacheMap<K,V>, StandaloneObject
构造器和说明 |
---|
StandaloneCacheMap(java.lang.String name) |
StandaloneCacheMap(java.lang.String name,
java.util.concurrent.ScheduledExecutorService executorService) |
限定符和类型 | 方法和说明 |
---|---|
protected void |
checkKey(java.lang.Object key)
----------------- 内部实现 --------------------
|
protected void |
checkValue(java.lang.Object value) |
protected void |
cleanExpireItem() |
void |
clear() |
protected boolean |
containKeyOperation(K key) |
boolean |
containsKey(java.lang.Object key) |
boolean |
containsValue(java.lang.Object value) |
void |
destroy()
销毁
因为有清过期key线程,所以需要支持
外层手动调用销毁方法
|
java.util.Set<java.util.Map.Entry<K,V>> |
entrySet() |
V |
get(java.lang.Object key) |
protected V |
getOperation(K key) |
boolean |
isEmpty() |
java.util.Set<K> |
keySet() |
V |
put(K key,
V value) |
V |
put(K key,
V value,
long ttl)
设置一个key-value 值,可以设置过期时间,单位毫秒
|
V |
put(K key,
V value,
long ttl,
long maxIdleTime)
设置key-value值单位为毫秒
|
V |
put(K key,
V value,
long ttl,
java.util.concurrent.TimeUnit unit)
设置一个key-value 值,可以设置过期时间
|
V |
put(K key,
V value,
long ttl,
java.util.concurrent.TimeUnit ttlUnit,
long maxIdleTime,
java.util.concurrent.TimeUnit maxIdleUnit)
设置一个key-value 值,可以设置过期时间,最大空闲时间
|
void |
putAll(java.util.Map<? extends K,? extends V> m) |
void |
putAll(java.util.Map<? extends K,? extends V> map,
long ttl) |
void |
putAll(java.util.Map<? extends K,? extends V> map,
long ttl,
java.util.concurrent.TimeUnit ttlUnit) |
protected void |
putAllOperation(java.util.Map<? extends K,? extends V> map,
long ttlTimeout) |
V |
putIfAbsent(K key,
V value) |
V |
putIfAbsent(K key,
V value,
long ttl)
当且仅当key不存在是进行保存,如果存在则返回原先的值
|
V |
putIfAbsent(K key,
V value,
long ttl,
long maxIdleTime)
缺失则设置key-value值单位为毫秒
|
V |
putIfAbsent(K key,
V value,
long ttl,
java.util.concurrent.TimeUnit ttlUnit)
当且仅当key不存在是进行保存,如果存在则返回原先的值
|
V |
putIfAbsent(K key,
V value,
long ttl,
java.util.concurrent.TimeUnit ttlUnit,
long maxIdleTime,
java.util.concurrent.TimeUnit maxIdleUnit)
缺失则设置一个key-value 值,可以设置过期时间,最大空闲时间
|
protected V |
putIfAbsentOperation(K key,
V value,
long ttlTimeout,
long maxIdleTimeout,
long maxIdleDelta) |
protected V |
putOperation(K key,
V value) |
protected V |
putOperation(K key,
V value,
long ttlTimeout,
long maxIdleTimeout,
long maxIdleDelta) |
long |
remainTimeToLive(K key)
关联的key值还有多久才过期
|
V |
remove(java.lang.Object key) |
boolean |
remove(java.lang.Object key,
java.lang.Object value) |
V |
replace(K key,
V value) |
boolean |
replace(K key,
V oldValue,
V newValue) |
int |
size()
注意这边返回的大小可能包括已经失效的key值
如果清理进程没有来的急清理过期的key
KeySet, Values,Entry 这些对象的迭代器的能保证获取出来的对象不是过期的
|
java.util.Collection<V> |
values() |
public StandaloneCacheMap(java.lang.String name)
public StandaloneCacheMap(java.lang.String name, java.util.concurrent.ScheduledExecutorService executorService)
public V put(K key, V value, long ttl, java.util.concurrent.TimeUnit ttlUnit, long maxIdleTime, java.util.concurrent.TimeUnit maxIdleUnit)
FineCacheMap
put
在接口中 FineCacheMap<K,V>
ttl
- 过期时间
为0时表示没有过期时间ttlUnit
- 时间单位maxIdleTime
- 最大过期时间应该大于最大空闲时间,最大空闲时间表示,如果有多长时间这个key值没有用
则失效
为0时表示没有最大空闲时间期限maxIdleUnit
- 最大空闲时间时间单位public V put(K key, V value, long ttl, long maxIdleTime)
FineCacheMap
put
在接口中 FineCacheMap<K,V>
public V put(K key, V value, long ttl, java.util.concurrent.TimeUnit unit)
FineCacheMap
put
在接口中 FineCacheMap<K,V>
ttl
- 过期时间
为0时表示没有过期时间unit
- 时间单位public V put(K key, V value, long ttl)
FineCacheMap
put
在接口中 FineCacheMap<K,V>
ttl
- 过期时间public V putIfAbsent(K key, V value, long ttl, java.util.concurrent.TimeUnit ttlUnit, long maxIdleTime, java.util.concurrent.TimeUnit maxIdleUnit)
FineCacheMap
putIfAbsent
在接口中 FineCacheMap<K,V>
ttl
- 过期时间
为0时表示没有过期时间ttlUnit
- 时间单位maxIdleTime
- 最大过期时间应该大于最大空闲时间,最大空闲时间表示,如果有多长时间这个key值没有用
则失效
为0时表示没有最大空闲时间期限maxIdleUnit
- 最大空闲时间时间单位public V putIfAbsent(K key, V value, long ttl, long maxIdleTime)
FineCacheMap
putIfAbsent
在接口中 FineCacheMap<K,V>
public V putIfAbsent(K key, V value, long ttl, java.util.concurrent.TimeUnit ttlUnit)
FineCacheMap
putIfAbsent
在接口中 FineCacheMap<K,V>
ttl
- 过期时间
为0时表示没有过期时间ttlUnit
- 时间单位public V putIfAbsent(K key, V value, long ttl)
FineCacheMap
putIfAbsent
在接口中 FineCacheMap<K,V>
ttl
- 过期时间
为0时表示没有过期时间
时间毫秒public void putAll(java.util.Map<? extends K,? extends V> map, long ttl, java.util.concurrent.TimeUnit ttlUnit)
putAll
在接口中 FineCacheMap<K,V>
ttl
- 过期时间ttlUnit
- - 时间单位public void putAll(java.util.Map<? extends K,? extends V> map, long ttl)
putAll
在接口中 FineCacheMap<K,V>
ttl
- 过期时间
单位毫秒public int size()
FineCacheMap
public boolean containsKey(java.lang.Object key)
public boolean containsValue(java.lang.Object value)
public long remainTimeToLive(K key)
FineCacheMap
remainTimeToLive
在接口中 FineCacheMap<K,V>
key
- - map keypublic java.util.Set<K> keySet()
public void destroy()
FineCacheMap
destroy
在接口中 FineCacheMap<K,V>
public boolean remove(java.lang.Object key, java.lang.Object value)
protected void checkKey(java.lang.Object key)
protected void checkValue(java.lang.Object value)
protected boolean containKeyOperation(K key)
protected V putOperation(K key, V value, long ttlTimeout, long maxIdleTimeout, long maxIdleDelta)
protected void putAllOperation(java.util.Map<? extends K,? extends V> map, long ttlTimeout)
protected V putIfAbsentOperation(K key, V value, long ttlTimeout, long maxIdleTimeout, long maxIdleDelta)
protected void cleanExpireItem()