Размер кеша Spring по умолчанию - PullRequest
0 голосов
/ 04 мая 2020

Какой размер весеннего кеша по умолчанию? Что произойдет, если придет другая запись, которую можно кэшировать? Он игнорирует его или удаляет запись из кеша, чтобы разместить новую? Если он удаляет, то как он решает, какой из них удалить?

Как мы можем указать размер кеша вручную? Я не имею в виду какой-либо другой кеш, например Caffeine, EHCache и т. Д. c. Я имею в виду весенний кеш по умолчанию.

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Spring's Cache Abstraction не занимается конкретной семантикой и деталями «управления» содержимым кеша (например, размером, политиками выселения или истечения срока действия). Таким образом, все эти настройки должны быть определены на уровне поставщика кеша (ehcache, hazelcast, infinispan ..).

Реализация Spring кеша по умолчанию - простая ConcurrentHashMap.

0 голосов
/ 05 мая 2020
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);
  }
};
...