Sobes.tech
Назад к вопросам
Junior — Middle
66

Каким образом можно реализовать механизм глобального кэширования данных в приложении?

Компании, где спрашивали
СБЕР ТехСБЕР Тех

Ответ от нейросети

sobes.tech AI

Глобальное кэширование данных в Java-приложении можно реализовать несколькими способами:

  1. Использование Singleton-класса с внутренним Map — простой способ хранить данные в памяти приложения.

  2. Использование готовых библиотек кэширования — например, Ehcache, Caffeine или Guava Cache, которые предоставляют расширенные возможности (время жизни, максимальный размер, очистка).

  3. Использование распределенного кэша — например, Redis или Memcached, если приложение масштабируется на несколько серверов.

Пример простого кэша с использованием ConcurrentHashMap:

import java.util.concurrent.*;

public class GlobalCache {
    private static final GlobalCache instance = new GlobalCache();
    private final ConcurrentHashMap<String, Object> cache = new ConcurrentHashMap<>();

    private GlobalCache() {}

    public static GlobalCache getInstance() {
        return instance;
    }

    public void put(String key, Object value) {
        cache.put(key, value);
    }

    public Object get(String key) {
        return cache.get(key);
    }

    public void remove(String key) {
        cache.remove(key);
    }
}

Такой подход обеспечивает быстрый доступ к данным в рамках одного экземпляра приложения.