本文主要是介绍Caffeine - Caches - Removal,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Caffeine - Caches - Removal
- 移除
- 明确移除
- 移除监听
移除
术语:
- 剔除是指基于剔除策略的移除
- 无效只是被调用者手工移除
- 移除是剔除和无效的后续操作
明确移除
在任何时候,您都可以显式的使缓存条目无效,而不必等待条目被剔除。
// individual key
cache.invalidate(key)
// bulk keys
cache.invalidateAll(keys)
// all keys
cache.invalidateAll()
移除监听
Cache<Key, Graph> graphs = Caffeine.newBuilder().removalListener((Key key, Graph graph, RemovalCause cause) ->System.out.printf("Key %s was removed (%s)%n", key, cause)).build();
您可以通过Caffeine.removalListener(RemovalListener)
为缓存指定移除监听器,以便在条目移除时执行某些操作。RemovalListener会接收移除条目的key、value和RemovalCause。
移除监听器会通过Executor异步执行。默认的执行器是ForkJoinPool.commonPool(),您可以通过Caffeine.executor(Executor)重写执行器。当监听操作必须与移除操作同步执行时,使用CacheWriter代替。
请注意,移除监听器抛出的所有异常将写入日志(通过Logger)并且被吞掉。
这篇关于Caffeine - Caches - Removal的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!