我正在尝试将 JCache 与 JCS 实现一起使用。如果我在配置中设置 MaxObjects=1 之类的东西,那么缓存只能保存 1 个项目。如果我添加一个新项目,那么旧项目将从缓存中静默删除。有没有办法监控哪些项目从缓存中删除,因为项目数> MaxObjects?
已过期、已删除、已创建和已更新条目上有侦听器,但仅当我手动删除、添加项目或项目过期时才会调用这些侦听器。如果由于达到 MaxObjects 而从缓存中删除项目,则不会调用 CacheEntryRemovedListener#onRemoved。是否有其他听众被告知?
这是我使用的当前配置。
# DEFAULT CACHE REGION
jcs.default=
jcs.default.cacheattributes=org.apache.commons.jcs.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=100
jcs.default.cacheattributes.MemoryCacheName=org.apache.commons.jcs.engine.memory.lru.LRUMemoryCache
jcs.default.cacheattributes.UseMemoryShrinker=true
jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
jcs.default.cacheattributes.ShrinkerIntervalSeconds=60
jcs.default.elementattributes=org.apache.commons.jcs.engine.ElementAttributes
jcs.default.elementattributes.IsEternal=true
jcs.default.elementattributes.MaxLife=21600
jcs.default.elementattributes.IdleTime=1800
jcs.default.elementattributes.IsSpool=true
jcs.default.elementattributes.IsRemote=true
jcs.default.elementattributes.IsLateral=true
###
jcs.region.tiles=
jcs.region.tiles.cacheattributes.MaxObjects=2