api.cache Работа с кешем

  • api.cache.create(name)

    api.cache.create(name, limit)

    api.cache.create(name, limit, lifetime)

    Создать новый или получить уже имеющийся кеш с заданными параметрами.

    Параметры метода:

    • name — имя кеша. String;
    • limit — максимальное количество элементов. Int;
    • lifetime — время жизни элемента в кеше (в секундах) с момента добавления. Int.

    Возвращает представление кеша в виде Map, отражает текущее состояние кеша и позволяет взаимодействовать с ним.

    Пример:

    def result = api.cache.create('test', 5, 15);

    Поддерживаемые методы (совместимы с java.util.concurrent.ConcurrentMap):

    • Object put(Object key, Object value) — добавляет значение в кеш по указанному ключу.
    • Object get(Object key) — возвращает значение по ключу.
    • Object remove(Object key) — удаляет значение по ключу.
    • void clear() — удаляет все элементы из кеша.

    Пример:

    Copy
    def cache = api.cache.create('test', 5, 15);
    cache.put('key', 'value'); # добавить значение в кеш
    def value = cache.get('key'); # получить значение из кеша

    Особенности:

    • Тайм-аут вытеснения будет срабатывать только после сохранения транзакции. До сохранения все объекты добавленные в кеш, включая просроченные, будут еще доступны.
    • Вытеснение по максимальному размеру сработает после сохранения транзакции. До сохранения размер кеша может быть больше максимально установленного. После сохранения лишние элементы будут вытеснены.
    • Объект, используемый в качестве ключа, должен корректно переопределять методы equals() и hashCode() и быть иммутабельным — то есть его состояние не должно изменяться после создания.
    • Значение null не допускается.
    • Не рекомендуется использовать метод clear(), если нет уверенности, что к кешу нет параллельных обращений.
    • Не следует создавать кеш без ограничений по времени жизни и максимальному количеству элементов, так как это может привести к утечке памяти.