Class LayeredCache<K,V>
java.lang.Object
cloud.opencode.base.cache.LayeredCache<K,V>
- Type Parameters:
K- the type of keys | 键类型V- the type of values | 值类型
- All Implemented Interfaces:
Cache<K,V>
@Deprecated(since="1.0.3",
forRemoval=true)
public class LayeredCache<K,V>
extends Object
implements Cache<K,V>
Deprecated, for removal: This API element is subject to removal in a future version.
LayeredCache - Multi-level cache implementation (L1/L2)
分层缓存 - 多级缓存实现 (L1/L2)
Implements a two-level cache strategy where L1 (fast, smaller) is checked first, then L2 (slower, larger) if not found. Write-through or write-back strategies can be configured.
实现两级缓存策略,首先检查 L1(快速、较小),如果未找到则检查 L2(较慢、较大)。 可配置写穿或写回策略。
Features | 主要功能:
- L1 (local) + L2 (shared) caching - L1(本地)+ L2(共享)缓存
- Write-through strategy - 写穿策略
- Write-back strategy - 写回策略
- Automatic L1 population on L2 hit - L2命中时自动填充L1
- Configurable promotion policies - 可配置的提升策略
Usage Examples | 使用示例:
// Create layered cache - 创建分层缓存
Cache<String, User> l1 = OpenCache.<String, User>builder()
.maxSize(1000)
.expireAfterWrite(Duration.ofMinutes(5))
.build("l1-users");
Cache<String, User> l2 = OpenCache.<String, User>builder()
.maxSize(10000)
.expireAfterWrite(Duration.ofHours(1))
.build("l2-users");
LayeredCache<String, User> cache = LayeredCache.of(l1, l2);
// Get - checks L1, then L2, promotes to L1 if found in L2
User user = cache.get("user:1001");
// Put - writes to both L1 and L2
cache.put("user:1001", user);
Performance | 性能特性:
- L1 hit: O(1) - L1命中: O(1)
- L2 hit: O(1) + promotion cost - L2命中: O(1) + 提升成本
- Miss: L1 miss + L2 miss + optional load - 未命中: L1未命中 + L2未命中 + 可选加载
Security | 安全性:
- Thread-safe: Yes - 线程安全: 是
- Null-safe: Partial (null values not allowed) - 空值安全: 部分(不允许null值)
- Since:
- JDK 25, opencode-base-cache V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classDeprecated, for removal: This API element is subject to removal in a future version.Builder for LayeredCache LayeredCache构建器static final recordDeprecated, for removal: This API element is subject to removal in a future version.Layered cache statistics 分层缓存统计static enumDeprecated, for removal: This API element is subject to removal in a future version.Write strategy for layered cache 分层缓存的写策略 -
Field Summary
Fields inherited from interface Cache
MAX_GLOB_LENGTH -
Method Summary
Modifier and TypeMethodDescriptionasMap()Deprecated, for removal: This API element is subject to removal in a future version.Get a concurrent map view of this cache 获取 ConcurrentMap 视图AsyncCache<K, V> async()Deprecated, for removal: This API element is subject to removal in a future version.Get async view of this cache 获取异步视图static <K,V> LayeredCache.Builder <K, V> Deprecated, for removal: This API element is subject to removal in a future version.Creates a builder for layered cache 创建分层缓存构建器voidcleanUp()Deprecated, for removal: This API element is subject to removal in a future version.Perform cleanup (expired entries, etc.)booleancontainsKey(K key) Deprecated, for removal: This API element is subject to removal in a future version.Check if key exists 检查键是否存在entries()Deprecated, for removal: This API element is subject to removal in a future version.Get snapshot of all entries 获取所有条目的快照longDeprecated, for removal: This API element is subject to removal in a future version.Get estimated entry count (fast) 获取估算条目数(快速)voidflush()Deprecated, for removal: This API element is subject to removal in a future version.Flushes L1 to L2 (for write-back strategy) 将L1刷新到L2(用于写回策略)Deprecated, for removal: This API element is subject to removal in a future version.Get value by key, returns null if not present 根据键获取值,不存在返回 nullDeprecated, for removal: This API element is subject to removal in a future version.Get value by key, load using loader if not present 根据键获取值,不存在时通过 loader 加载Deprecated, for removal: This API element is subject to removal in a future version.Get all values for given keys, returns only existing entries 批量获取,仅返回存在的条目Deprecated, for removal: This API element is subject to removal in a future version.Get all values, load missing keys using loader 批量获取,缺失的键通过 loader 加载voidinvalidate(K key) Deprecated, for removal: This API element is subject to removal in a future version.Invalidate a single key 使单个键失效voidDeprecated, for removal: This API element is subject to removal in a future version.Invalidate all entries 清空所有缓存voidinvalidateAll(Iterable<? extends K> keys) Deprecated, for removal: This API element is subject to removal in a future version.Invalidate multiple keys 批量失效booleanDeprecated, for removal: This API element is subject to removal in a future version.Checks if promotion on L2 hit is enabled 检查是否启用L2命中时提升keys()Deprecated, for removal: This API element is subject to removal in a future version.Get snapshot of all keys 获取所有键的快照l1()Deprecated, for removal: This API element is subject to removal in a future version.Gets the L1 cache 获取L1缓存l2()Deprecated, for removal: This API element is subject to removal in a future version.Gets the L2 cache 获取L2缓存Deprecated, for removal: This API element is subject to removal in a future version.Gets combined statistics for both layers 获取两层的组合统计信息name()Deprecated, for removal: This API element is subject to removal in a future version.Get cache name 获取缓存名称static <K,V> LayeredCache <K, V> Deprecated, for removal: This API element is subject to removal in a future version.Creates a layered cache with default settings 使用默认设置创建分层缓存voidDeprecated, for removal: This API element is subject to removal in a future version.Put a key-value pair into cache 放入键值对voidDeprecated, for removal: This API element is subject to removal in a future version.Put all key-value pairs into cache 批量放入voidputAllWithTtl(Map<? extends K, ? extends V> map, Duration ttl) Deprecated, for removal: This API element is subject to removal in a future version.Put all entries with custom TTL 批量放入并指定自定义 TTLbooleanputIfAbsent(K key, V value) Deprecated, for removal: This API element is subject to removal in a future version.Put if the key is absent, returns true if successful 不存在时放入,成功返回 truebooleanputIfAbsentWithTtl(K key, V value, Duration ttl) Deprecated, for removal: This API element is subject to removal in a future version.Put if absent with custom TTL 不存在时放入并指定自定义 TTLvoidputWithTtl(K key, V value, Duration ttl) Deprecated, for removal: This API element is subject to removal in a future version.Put a key-value pair with custom TTL (overrides default expiration) 放入键值对并指定自定义 TTL(覆盖默认过期时间)longsize()Deprecated, for removal: This API element is subject to removal in a future version.Get exact entry count (may be slow) 获取精确条目数(可能较慢)stats()Deprecated, for removal: This API element is subject to removal in a future version.Get cache statistics 获取缓存统计信息values()Deprecated, for removal: This API element is subject to removal in a future version.Get snapshot of all values 获取所有值的快照voidDeprecated, for removal: This API element is subject to removal in a future version.Warms up L1 from L2 with specified keys 使用指定键从L2预热L1Deprecated, for removal: This API element is subject to removal in a future version.Gets the write strategy 获取写策略Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Cache
clear, compute, computeIfAbsent, computeIfMatch, computeIfPresent, containsValue, entryIterator, entryParallelStream, entryStream, forEach, forEachKey, forEachValue, getAndRemove, getByPattern, getIfPresent, getOptional, getOrDefault, getOrNull, invalidateByPattern, invalidateByValue, invalidateIf, isEmpty, keyIterator, keyParallelStream, keyStream, merge, metrics, putAllIfAbsent, putIfPresent, removeIfEquals, removeIfPresent, replace, replace, replaceAll, replaceIf, resetStats, updateAll, updateTtl, updateTtl, updateTtlAll, valueParallelStream, valueStream
-
Method Details
-
of
Deprecated, for removal: This API element is subject to removal in a future version.Creates a layered cache with default settings 使用默认设置创建分层缓存- Type Parameters:
K- key type | 键类型V- value type | 值类型- Parameters:
l1- L1 cache (fast, small) | L1缓存(快速、小)l2- L2 cache (slower, large) | L2缓存(较慢、大)- Returns:
- layered cache | 分层缓存
-
builder
Deprecated, for removal: This API element is subject to removal in a future version.Creates a builder for layered cache 创建分层缓存构建器- Type Parameters:
K- key type | 键类型V- value type | 值类型- Parameters:
l1- L1 cache | L1缓存l2- L2 cache | L2缓存- Returns:
- builder | 构建器
-
get
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CacheGet value by key, returns null if not present 根据键获取值,不存在返回 null -
get
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CacheGet value by key, load using loader if not present 根据键获取值,不存在时通过 loader 加载 -
getAll
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CacheGet all values for given keys, returns only existing entries 批量获取,仅返回存在的条目 -
getAll
public Map<K,V> getAll(Iterable<? extends K> keys, Function<? super Set<? extends K>, ? extends Map<K, V>> loader) Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CacheGet all values, load missing keys using loader 批量获取,缺失的键通过 loader 加载 -
put
-
putAll
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CachePut all key-value pairs into cache 批量放入 -
putIfAbsent
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CachePut if the key is absent, returns true if successful 不存在时放入,成功返回 true- Specified by:
putIfAbsentin interfaceCache<K,V> - Parameters:
key- the key | 键value- the value | 值- Returns:
- true if put successfully | 成功放入返回 true
-
putWithTtl
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CachePut a key-value pair with custom TTL (overrides default expiration) 放入键值对并指定自定义 TTL(覆盖默认过期时间)- Specified by:
putWithTtlin interfaceCache<K,V> - Parameters:
key- the key | 键value- the value | 值ttl- the time-to-live for this entry | 此条目的存活时间
-
putAllWithTtl
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CachePut all entries with custom TTL 批量放入并指定自定义 TTL- Specified by:
putAllWithTtlin interfaceCache<K,V> - Parameters:
map- the key-value pairs | 键值对 Mapttl- the time-to-live for all entries | 所有条目的存活时间
-
putIfAbsentWithTtl
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CachePut if absent with custom TTL 不存在时放入并指定自定义 TTL- Specified by:
putIfAbsentWithTtlin interfaceCache<K,V> - Parameters:
key- the key | 键value- the value | 值ttl- the time-to-live | 存活时间- Returns:
- true if put successfully | 成功放入返回 true
-
invalidate
-
invalidateAll
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CacheInvalidate multiple keys 批量失效- Specified by:
invalidateAllin interfaceCache<K,V> - Parameters:
keys- the keys to invalidate | 要失效的键集合
-
invalidateAll
public void invalidateAll()Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CacheInvalidate all entries 清空所有缓存- Specified by:
invalidateAllin interfaceCache<K,V>
-
containsKey
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CacheCheck if key exists 检查键是否存在- Specified by:
containsKeyin interfaceCache<K,V> - Parameters:
key- the key | 键- Returns:
- true if exists | 存在返回 true
-
size
-
estimatedSize
public long estimatedSize()Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CacheGet estimated entry count (fast) 获取估算条目数(快速)- Specified by:
estimatedSizein interfaceCache<K,V> - Returns:
- estimated count | 估算数量
-
keys
-
values
-
entries
-
asMap
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:CacheGet a concurrent map view of this cache 获取 ConcurrentMap 视图 -
stats
-
cleanUp
-
async
-
name
-
l1
-
l2
-
writeStrategy
Deprecated, for removal: This API element is subject to removal in a future version.Gets the write strategy 获取写策略- Returns:
- write strategy | 写策略
-
isPromoteOnL2Hit
public boolean isPromoteOnL2Hit()Deprecated, for removal: This API element is subject to removal in a future version.Checks if promotion on L2 hit is enabled 检查是否启用L2命中时提升- Returns:
- true if enabled | 如果启用则为true
-
flush
public void flush()Deprecated, for removal: This API element is subject to removal in a future version.Flushes L1 to L2 (for write-back strategy) 将L1刷新到L2(用于写回策略)- Throws:
RuntimeException- if flush fails | 刷新失败时抛出运行时异常
-
warmUp
-
layeredStats
Deprecated, for removal: This API element is subject to removal in a future version.Gets combined statistics for both layers 获取两层的组合统计信息- Returns:
- combined stats | 组合统计
-
MultiLevelCacheinstead. This class will be removed in a future version. 已废弃,请使用MultiLevelCache替代。 此类将在未来版本中移除。