Java for Beginner
672 subscribers
541 photos
155 videos
12 files
827 links
Канал от новичков для новичков!
Изучайте Java вместе с нами!
Здесь мы обмениваемся опытом и постоянно изучаем что-то новое!

Наш YouTube канал - https://www.youtube.com/@Java_Beginner-Dev

Наш канал на RUTube - https://rutube.ru/channel/37896292/
Download Telegram
3. Ehcache

Ehcache – это высокопроизводительный провайдер кеша, который работает локально в памяти приложения. Он также поддерживает персистентность данных.

Нюансы работы с Ehcache

Хранение данных:
Данные кешируются в памяти, но могут быть настроены для сохранения на диск (для долговременного хранения).

<cache alias="persistentCache">
<heap unit="entries">1000</heap>
<disk persistent="true" directory="./cache-data" />
</cache>


Конфигурация TTL и TTI:
TTL (time-to-live) определяет максимальное время хранения записи.
TTI (time-to-idle) сбрасывается при каждом доступе к записи.

<cache alias="myCache">
<heap unit="entries">500</heap>
<expiry>
<ttl unit="seconds">300</ttl> <!-- 5 минут -->
<tti unit="seconds">60</tti> <!-- 1 минута неактивности -->
</expiry>
</cache>


Гибкость настройки:
Ehcache можно настроить с разной стратегией хранения, например, только в памяти или с поддержкой записи на диск.

Ограничения:
Ehcache работает только локально, что делает его менее подходящим для распределённых систем.
В высоконагруженных приложениях использование кеша в памяти может быть ограничено объёмом оперативной памяти.


Шаги настройки Ehcache
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>


Создайте конфигурацию Ehcache (ehcache.xml):
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.ehcache.org/v3">
<cache alias="myCache">
<heap unit="entries">100</heap>
<expiry>
<ttl unit="seconds">300</ttl>
</expiry>
</cache>
</config>


Конфигурация Spring для
Ehcache:
@Configuration
@EnableCaching
public class EhcacheConfig {
@Bean
public CacheManager cacheManager() {
return new EhCacheCacheManager(CacheManager.newInstance("ehcache.xml"));
}
}
Теперь можно использовать кеширование с Ehcache.


Рекомендации по выбору

Используйте Redis, если:
Вам нужно кеширование в распределённой системе.
Данные должны быть доступны всем экземплярам приложения.
Есть потребность в масштабируемости и гибкости.


Используйте Ehcache, если:
Вы хотите локальное кеширование с минимальными задержками.
Вам важна поддержка дисковой персистентности.


Используйте Caffeine, если:
Вы ищете максимальную производительность и минимальное потребление ресурсов.
Приложение работает локально и не требует масштабируемости.


#Java #Training #Spring #Ehcache