K
- 键类型V
- 值类型public class SimpleCache<K,V> extends Object implements Iterable<Map.Entry<K,V>>, Serializable
WeakConcurrentMap
实现缓存自动清理Modifier and Type | Field and Description |
---|---|
protected Map<K,Lock> |
keyLockMap
写的时候每个key一把锁,降低锁的粒度
|
Constructor and Description |
---|
SimpleCache()
构造,默认使用
WeakHashMap 实现缓存自动清理 |
SimpleCache(Map<Mutable<K>,V> initMap)
构造
通过自定义Map初始化,可以自定义缓存实现。
|
Modifier and Type | Method and Description |
---|---|
void |
clear()
清空缓存池
|
V |
get(K key)
从缓存池中查找值
|
V |
get(K key,
Func0<V> supplier)
从缓存中获得对象,当对象不在缓存中或已经过期返回Func0回调产生的对象
|
V |
get(K key,
Predicate<V> validPredicate,
Func0<V> supplier)
从缓存中获得对象,当对象不在缓存中或已经过期返回Func0回调产生的对象
|
Iterator<Map.Entry<K,V>> |
iterator() |
V |
put(K key,
V value)
放入缓存
|
V |
remove(K key)
移除缓存
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
public SimpleCache()
WeakHashMap
实现缓存自动清理public SimpleCache(Map<Mutable<K>,V> initMap)
通过自定义Map初始化,可以自定义缓存实现。
比如使用WeakHashMap
则会自动清理key,使用HashMap则不会清理
同时,传入的Map对象也可以自带初始化的键值对,防止在get时创建
initMap
- 初始Map,用于定义Map类型public V get(K key, Func0<V> supplier)
key
- 键supplier
- 如果不存在回调方法,用于生产值对象public V get(K key, Predicate<V> validPredicate, Func0<V> supplier)
key
- 键validPredicate
- 检查结果对象是否可用,如是否断开连接等supplier
- 如果不存在回调方法或结果不可用,用于生产值对象public void clear()
Copyright © 2024. All rights reserved.