Привет, мир, пример для ehcache? - PullRequest
34 голосов
/ 02 июня 2011

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

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

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

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

Ответы [ 2 ]

38 голосов
/ 04 июня 2011

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-секундного периода по умолчанию кэш вернет ноль (отсюда и проверка, если elt равно нулю).Вы можете настроить срок действия, создав собственный файл ehcache.xml - документация по нему находится на сайте ehcache.

13 голосов
/ 22 декабря 2013

Рабочая реализация ответа 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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...