Module bus.core
Package org.miaixz.bus.core.cache.provider
package org.miaixz.bus.core.cache.provider
各种缓存实现
- Since:
- Java 17+
- Author:
- Kimi Liu
-
ClassesClassDescriptionAbstractCache<K,
V> 超时和限制大小的缓存的默认实现 继承此抽象缓存需要: 创建一个新的Map 实现prune策略CacheObject<K,V> 缓存对象CacheObjectIterator<K,V> AbstractCache的CacheObj迭代器.AbstractCache的值迭代器.FIFOCache<K,V> FIFO(first in first out) 先进先出缓存.LFUCache<K,V> LFU(least frequently used) 最少使用率缓存 根据使用次数来判定对象是否被持续缓存 使用率是通过访问次数计算的。LockedCache<K,V> 使用Lock保护的缓存,读写都使用悲观锁完成,主要避免某些Map无法使用读写锁的问题, 例如使用了LinkedHashMap的缓存,由于get方法也会改变Map的结构,因此读写必须加互斥锁LRUCache<K,V> LRU (least recently used)最近最久未使用缓存 根据使用时间来判定对象是否被持续缓存 当对象被访问时放入缓存,当缓存满了,最久未被使用的对象将被移除。NoCache<K,V> 无缓存实现,用于快速关闭缓存TimedCache<K,V> 定时缓存, 此缓存没有容量限制,对象只有在过期后才会被移除, 此缓存采用读写乐观锁,用于可脏读的场景,不能使用LinkedHashMapTimedReentrantCache<K,V> 定时缓存, 此缓存没有容量限制,对象只有在过期后才会被移除WeakCache<K,V> 弱引用缓存 对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。