Как сохранить кеш для веб-приложения Java / J2EE? - PullRequest
4 голосов
/ 26 марта 2011

Я разрабатываю приложение для этого каждый раз, когда мне нужно подключиться к услуге. Я хочу сохранить каждый поиск в моем кэше для дальнейшего использования. Есть ли возможность сделать это?

Я слышал о Memcached. Но я не нашел правильный сайт для справки. Можем ли мы использовать Ehcache, как мы используем в Hibernate?

Ответы [ 3 ]

4 голосов
/ 26 марта 2011

Существуют различные решения для кэширования в Java. Среди них Infinispan, EhCache и OSCache.

Все они также могут использоваться автономно, например, ни один из них не был предназначен исключительно для использования в качестве поставщика кэширования Hibernate.

Функциональные возможности между кешами немного различаются. Например, Infinispan обеспечивает первоклассную поддержку транзакций (то есть элемент не будет вставлен в кеш, если транзакция, в которую был вставлен элемент, отката). EhCache имеет отличную поддержку для действительно больших внутрипроцессных, но не кучи хранилищ для кеша.

OSCache поставляется с очень удобными тегами для кэширования контента на страницах JSP (но это не работает, например, с JSF).

Большинство из них способны выполнять обычное перетекание на диск и имеют некоторые механизмы для аннулирования устаревших записей. Например, в Infinispan есть политики удаления, и они действительно удаляют устаревшие записи из кэша (экономя память). OSCache, в свою очередь, никогда не удаляет запись из кэша, но помечает ее как устаревшую. При доступе к записи вызывающему сообщается о необходимости обновить запись (раньше она была исключением, но теперь может отличаться).

Обычно это то, что отличает «кеш» от простой параллельной хэш-карты. Если ваши требования скромны, не забывайте об этом простом решении. Кэш может быть довольно сложно настроить, и вам может также подойти параллельная карта в области приложения.

4 голосов
/ 26 марта 2011

вот хорошая статья о кешировании. http://www.javaworld.com/javaworld/jw-05-2004/jw-0531-cache.html?page=1

1 голос
/ 30 октября 2012

Вы можете очень легко кэшировать данные для каждого пользователя (например, сеанс) с помощью тегов OSCache jsp.Например, представьте веб-приложение, в котором «рабочий список» конкретного пользователя не изменился, а затем всегда обслуживайте кэшированный (т. Е. Уже сгенерированный) jsp до тех пор, пока список не изменится (посредством вызова сброса кэша где-то еще в приложении)

Код переноса на слое jsp с тегом кэша следующим образом:

<cache:cache key="foobar" scope="session">
  <%= myBean.getData() %>
</cache:cache>

означает, что java-код myBean.getData () будет вызываться только один раз за сеанс (если не очищено иное)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...