Подтвердить что ты не робот

Привет, мировой пример для ehcache?

ehcache - чрезвычайно настраиваемый зверь, и примеры довольно сложны, часто с участием многих слоев интерфейсов.

Приходит ли кто-нибудь к простейшему примеру, который просто кэширует что-то вроде одного числа в памяти (не распределенного, без XML, как можно меньше строк java). Затем число кэшируется в течение 60 секунд, затем следующий запрос на чтение заставляет его получать новое значение (например, вызывая Random.nextInt() или аналогичный)

Быстрее/проще написать собственный кеш для чего-то вроде синглтона и немного синхронизации?

Нет Spring пожалуйста.

4b9b3361

Ответ 1

EhCache поставляется с отказоустойчивой конфигурацией, которая имеет некоторое разумное время истечения (120 секунд). Этого достаточно, чтобы его запустить и запустить.

Импорт

import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;

Тогда создание кеша довольно просто:

CacheManager.getInstance().addCache("test");

Создает кеш с именем test. У вас может быть много разных отдельных кешей, управляемых одним и тем же CacheManager. Добавление пар (key, value) в этот кеш так же просто, как:

CacheManager.getInstance().getCache("test").put(new Element(key, value));

Получение значения для заданного ключа так же просто, как:

Element elt = CacheManager.getInstance().getCache("test").get(key);
return (elt == null ? null : elt.getObjectValue());

Если вы попытаетесь получить доступ к элементу после 120-секундного срока истечения по умолчанию, кэш вернет null (следовательно, проверка, чтобы увидеть, является ли elt null). Вы можете отрегулировать период истечения срока действия, создав собственный файл ehcache.xml - документация для этого является достойной на сайте ehcache.

Ответ 2

Рабочая реализация ответа jbrookover:

import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
import net.sf.ehcache.Cache;

public class EHCacheDemo  {
    public static final void main(String[] igno_red)  {
        CacheManager cchm = CacheManager.getInstance();

        //Create a cache
        cchm.addCache("test");

        //Add key-value pairs
        Cache cch = cchm.getCache("test");
        cch.put(new Element("tarzan", "Jane"));
        cch.put(new Element("kermit", "Piggy"));

        //Retrieve a value for a given key
        Element elt = cch.get("tarzan");
        String sPartner = (elt == null ? null : elt.getObjectValue().toString());

        System.out.println(sPartner);  //Outputs "Jane"

        //Required or the application will hang
        cchm.removeAllCaches();  //alternatively: cchm.shutdown();
    }
}