注意:ehcache缓存的过期是访问后才过期!
配置为
<cache name="authorizationCache"
maxEntriesLocalHeap="5000"
eternal="false"
timeToIdleSeconds="120" //timeToIdleSeconds表示最大空闲的时间
timeToLiveSeconds="180" //timeToLiveSeconds表示最大存活时间
overflowToDisk="false"
diskPersistent="false"
/>
设置过期时间为 2 分钟,最大存活时间为 3 分钟,等 10 分钟后 caches.size()
查询结果 > 0
这个时候如果用 foreach
遍历打印出 key
和 value
会看到 key
存在 但是 value
为 null
遍历之后 再次输出 caches.size()
结果才是 0
即使这个时候 value
已经为 null
了, 但只有当我遍历 value 的时候,才会把这些 key 删除
使用ehcache非常简单和直观,一般来说只需要配置ehcache.xml文件,接着直接使用@Cacheable, @Cacheput, @CacheEvict即可