Spring缓存默认大小

时间:2020-05-04 20:06:05

标签: java spring-boot caching spring-cache

spring cache的默认大小是多少? 如果另一个条目可以缓存会怎样?它会忽略它还是从缓存中删除一项以容纳一个新项?如果删除,那么如何确定要删除哪一个?

我们如何手动提供缓存大小? 我指的不是其他任何缓存,例如Caffeine,EHCache等。 我指的是默认的Spring缓存。

2 个答案:

答案 0 :(得分:1)

Spring的缓存抽象不处理“管理”缓存内容(例如大小,逐出或到期策略)的特定语义和细节。因此,所有这些设置都必须在缓存提供程序级别(ehcache,hazelcast,infinispan ..)进行定义。

spring cache的默认实现是简单的ConcurrentHashMap

答案 1 :(得分:0)

We can add our own expiry and max limit as follows :

 public CacheManager cacheManager() {
ConcurrentMapCacheManager cacheManager = new ConcurrentMapCacheManager() {
  @Override
  protected Cache createConcurrentMapCache(final String name) {
    return new ConcurrentMapCache(name, CacheBuilder.newBuilder().expireAfterWrite(7200,
        TimeUnit.SECONDS).maximumSize(500L).build().asMap(), false);
  }
};