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

OSCache против EHCache

Никогда ранее не использовался такой кеш. Проблема в том, что я хочу загрузить 500 000 + записей из базы данных и сделать выбор/фильтрацию злой быстро.

Я думаю об использовании кеша и предварительно нашел EHCache и OSCache, любые мнения?

4b9b3361

Ответ 1

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

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

Ответ 2

Судя по их выпускает страницу, OSCache не активно поддерживается с 2007 года. Это нехорошо. EhCache, с другой стороны, находится в постоянном развитии. Только по этой причине я бы выбрал EhCache.

Изменить ноябрь 2013: OSCache, как и остальные OpenSymphony, мертв.

Ответ 3

Я использовал JCS (http://jakarta.apache.org/jcs/), и он кажется прочным и простым в использовании программным способом.

Ответ 4

Это зависит от ваших потребностей. Если вы выполняете работу в памяти на одной машине, ehcache будет работать отлично, если у вас достаточно ОЗУ или достаточно быстрый жесткий диск, чтобы переполнение не вызывало пейджинг/разбиение диска. если вы обнаружите, что вам нужно достичь масштабируемости, даже несмотря на то, что эта конкретная операция происходит много, тогда вы, вероятно, захотите сделать кластеризацию. JGroups/TreeCache от JBoss поддерживают это, так же как и EHcache (я думаю), и я знаю, что это определенно работает, если вы используете Ehcache с терракотой, которая является очень гладкой интеграцией. Этот ответ не говорит напрямую о достоинствах EHcache и OSCache, поэтому вот этот ответ: EHcache, похоже, имеет самую инерцию (обычно это была известная, активная разработка по умолчанию, включая новый сервер кеша), а OSCache (по крайней мере, в какой-то момент), чтобы иметь несколько больше возможностей, но я думаю, что с упомянутыми выше вариантами эти преимущества являются спорными/замененными. Ах, другая вещь, о которой я забыл упомянуть, заключается в том, что транзакционная способность данных важна, и ваши требования будут уточнять список допустимых вариантов.

Ответ 5

Выберите кеш, который соответствует JSR 107, который упростит вашу работу, когда вы захотите перейти от одной реализации к другой. Чтобы быть конкретным в вопросе, обращайтесь за Ehcache, который является более популярным и широко используемым решением кэширования Java. Мы широко используем Ehcache, и это работает для нас.

Ответ 6

Другие ответы обсуждают плюсы/минусы для кешей; но мне интересно, действительно ли вы вообще используете кеш. Не совсем ясно, что вы планируете делать здесь, и почему кеш был бы полезен: если у вас есть данные, установленные для вашего использования, просто получите доступ к этому. Кэш только помогает повторно использовать вещи между другими независимыми задачами. Если это то, что вы делаете, да, кеширование может помочь. Но если это большая задача, которая может нести его набор данных, кеширование не добавит значения.

Ответ 7

В любом случае, я рекомендую использовать их с модулями Spring. Кэш может быть прозрачным для приложения, а реализации кэша тривиально легко заменить. В дополнение к OSCache и EHCache модули Spring также поддерживают кеши Gigaspaces и JBoss.

Что касается сравнений... OSCache проще настроить EHCache имеет больше опций конфигурации

Они оба прочны, оба поддерживают зеркальный кеш, оба работают с Terracotta, поддерживают как в кэше, так и в памяти.

Ответ 8

Я использовал oscache в нескольких проектах spring с spring -модулями, используя конфигурацию на основе aop.

Недавно я искал использовать модули oscache + spring в проекте spring 3.x, но обнаружение spring -modules на основе аннотации на основе кеширования не поддерживается (даже для fork).

Недавно я узнал об этом проекте -

http://code.google.com/p/ehcache-spring-annotations/

Что поддерживает spring 3.x с помощью декларативного кэширования на основе аннотаций с использованием ehcache.

Ответ 9

В основном я использую EhCache, потому что раньше он был поставщиком кеша по умолчанию для Hibernate. Существует список решений кэширования на Java-Source.net.

У меня была ссылка, которая сравнивала основные решения кэширования. Если я найду это, я обновлю этот ответ.

Ответ 10

OSCache в значительной степени мертв, поскольку он был оставлен несколько лет назад. Вы можете взглянуть на Cacheonix, он был активно разработан, и мы только что выпустили v.2.2.2 с поддержкой кэширования в веб-уровне. Я коммиттер, чтобы вы могли связаться, если у вас есть какие-либо вопросы.