Package org.miaixz.bus.core.cache
Interface Cache<K,V>
- Type Parameters:
K- 键类型V- 值类型
- All Superinterfaces:
Iterable<V>,Serializable
- All Known Implementing Classes:
AbstractCache,FIFOCache,LFUCache,LRUCache,NoCache,ReentrantCache,StampedCache,TimedCache,WeakCache
缓存接口
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Method Summary
Modifier and TypeMethodDescription返回包含键和值得迭代器intcapacity()返回缓存容量,0表示无大小限制voidclear()清空缓存booleancontainsKey(K key) 是否包含keydefault V从缓存中获得对象,当对象不在缓存中或已经过期返回null从缓存中获得对象,当对象不在缓存中或已经过期返回null从缓存中获得对象,当对象不在缓存中或已经过期返回SerSupplier回调产生的对象从缓存中获得对象,当对象不在缓存中或已经过期返回SerSupplier回调产生的对象default V从缓存中获得对象,当对象不在缓存中或已经过期返回SerSupplier回调产生的对象booleanisEmpty()缓存是否为空booleanisFull()缓存是否已满,仅用于有空间限制的缓存对象intprune()从缓存中清理过期对象,清理策略取决于具体实现void将对象加入到缓存,使用默认失效时长void将对象加入到缓存,使用指定失效时长 如果缓存空间满了,prune()将被调用以获得空间来存放新对象void从缓存中移除对象setListener(CacheListener<K, V> listener) 设置监听intsize()缓存的对象数量longtimeout()缓存失效时长,0表示没有设置,单位毫秒Methods inherited from interface java.lang.Iterable
forEach, iterator, spliterator
-
Method Details
-
capacity
int capacity()返回缓存容量,0表示无大小限制- Returns:
- 返回缓存容量,
0表示无大小限制
-
timeout
long timeout()缓存失效时长,0表示没有设置,单位毫秒- Returns:
- 缓存失效时长,
0表示没有设置,单位毫秒
-
put
将对象加入到缓存,使用默认失效时长- Parameters:
key- 键object- 缓存的对象- See Also:
-
put
将对象加入到缓存,使用指定失效时长 如果缓存空间满了,prune()将被调用以获得空间来存放新对象- Parameters:
key- 键object- 缓存的对象timeout- 失效时长,单位毫秒
-
get
从缓存中获得对象,当对象不在缓存中或已经过期返回null调用此方法时,会检查上次调用时间,如果与当前时间差值大于超时时间返回
null,否则返回值。每次调用此方法会刷新最后访问时间,也就是说会重新计算超时时间。
- Parameters:
key- 键- Returns:
- 键对应的对象
- See Also:
-
get
从缓存中获得对象,当对象不在缓存中或已经过期返回SerSupplier回调产生的对象调用此方法时,会检查上次调用时间,如果与当前时间差值大于超时时间返回
null,否则返回值。每次调用此方法会刷新最后访问时间,也就是说会重新计算超时时间。
- Parameters:
key- 键supplier- 如果不存在回调方法,用于生产值对象- Returns:
- 值对象
-
get
从缓存中获得对象,当对象不在缓存中或已经过期返回SerSupplier回调产生的对象调用此方法时,会检查上次调用时间,如果与当前时间差值大于超时时间返回
null,否则返回值。每次调用此方法会可选是否刷新最后访问时间,
true表示会重新计算超时时间。- Parameters:
key- 键isUpdateLastAccess- 是否更新最后访问时间,即重新计算超时时间。supplier- 如果不存在回调方法,用于生产值对象- Returns:
- 值对象
-
get
从缓存中获得对象,当对象不在缓存中或已经过期返回SerSupplier回调产生的对象调用此方法时,会检查上次调用时间,如果与当前时间差值大于超时时间返回
null,否则返回值。每次调用此方法会可选是否刷新最后访问时间,
true表示会重新计算超时时间。- Parameters:
key- 键isUpdateLastAccess- 是否更新最后访问时间,即重新计算超时时间。timeout- 自定义超时时间supplier- 如果不存在回调方法,用于生产值对象- Returns:
- 值对象
-
get
从缓存中获得对象,当对象不在缓存中或已经过期返回null调用此方法时,会检查上次调用时间,如果与当前时间差值大于超时时间返回
null,否则返回值。每次调用此方法会可选是否刷新最后访问时间,
true表示会重新计算超时时间。- Parameters:
key- 键isUpdateLastAccess- 是否更新最后访问时间,即重新计算超时时间。- Returns:
- 键对应的对象
-
cacheObjIterator
Iterator<CacheObject<K,V>> cacheObjIterator()返回包含键和值得迭代器- Returns:
- 缓存对象迭代器
-
prune
int prune()从缓存中清理过期对象,清理策略取决于具体实现- Returns:
- 清理的缓存对象个数
-
isFull
boolean isFull()缓存是否已满,仅用于有空间限制的缓存对象- Returns:
- 缓存是否已满,仅用于有空间限制的缓存对象
-
remove
从缓存中移除对象- Parameters:
key- 键
-
clear
void clear()清空缓存 -
size
int size()缓存的对象数量- Returns:
- 缓存的对象数量
-
isEmpty
boolean isEmpty()缓存是否为空- Returns:
- 缓存是否为空
-
containsKey
是否包含key- Parameters:
key- KEY- Returns:
- 是否包含key
-
setListener
设置监听- Parameters:
listener- 监听- Returns:
- this
-