2008-09-18 3 views
19

전에 이와 같이 캐시를 사용하지 마십시오. 문제는 데이터베이스에서 500,000 개 이상의 레코드를로드하고 일부 선택/사악한 필터링을 빠르게하고 싶다는 것입니다.OSCache 대 EHCache

캐시를 사용하려고 생각 중이며 사전에 EHCacheOSCache이라는 의견이 있습니까?

+7

왜 데이터베이스를 선택/필터링하는 것보다 캐시를 ​​사용하는 것이 더 빠를 것이라고 생각하십니까? 그것은 그들이하는 일의 종류입니다. :) –

답변

19

두 프로젝트 모두 매우 견고합니다. 꽤 기본적인 캐싱 요구가 있다면, 그 중 하나는 아마도 다른 하나와 마찬가지로 작동 할 것입니다.

가능하면 데이터베이스 쿼리에서 필터링하는 것이 좋습니다. 작은 결과 집합을 반환하는 튜닝 된 쿼리를 사용하면 메모리에 500,000 개의 행을로드 한 다음 필터링하는 것보다 더 나은 성능을 제공하는 경우가 많습니다.

0

저는 EhCache가 Hibernate의 기본 캐시 공급자이기 때문에 주로 사용합니다. Java-Source.net에 대한 캐싱 솔루션 목록이 있습니다.

필자는 메인 캐싱 솔루션을 비교하는 링크를 사용했습니다. 찾으면이 대답을 업데이트 할 것입니다.

5

귀하의 필요에 따라 다릅니다. 하나의 컴퓨터에서 메모리 작업을 수행하는 경우 ehcache가 완벽하게 작동합니다. 오버플로가 디스크 페이징/스 래싱을 유발하지 않도록 충분한 RAM 또는 충분한 하드 디스크가 있다고 가정합니다. 이 특별한 작업이 많이 발생 함에도 불구하고 확장 성을 달성해야한다는 것을 알게되면 클러스터링을 원할 것입니다. JBoss의 JGroups/TreeCache는 이것을 지원합니다. EHcache도 마찬가지입니다. 테라코타로 Ehcache를 사용하면 매우 효과적이라는 것을 알았습니다. 테라코타는 매우 매끄러운 통합입니다. 이 대답은 EHcache와 OSCache의 장점을 직접적으로 말하지 않으므로 여기에 그 대답이 있습니다. EHcache는 (새 캐시 서버를 포함하여 기본적이고 잘 알려진, 적극적인 개발이었던) 가장 관성이있는 것처럼 보이며 OSCache는 (최소한 한 지점에서) 약간 더 많은 기능을 가지고 있지만, 위에서 언급 한 옵션을 사용하면 이러한 이점을 근본적으로/대체 할 수 있다고 생각합니다. 아, 제가 언급하는 것을 잊어 버린 또 다른 점은 데이터의 트랜잭션 성이 중요하다는 것과 여러분의 요구 사항이 유효한 선택 목록을 개선한다는 것입니다.

2

어느 쪽이든 저는 스프링 모듈과 함께 사용하는 것이 좋습니다. 캐시는 응용 프로그램에 투명 할 수 있으며 캐시 구현은 쉽게 교체 할 수 있습니다. OSCache 및 EHCache 외에도 Spring 모듈은 Gigaspaces 및 JBoss 캐시를 지원합니다. 비교에 관해서는

.... OSCACHE는 EHCache는 더 많은 구성 옵션

를 가지고 구성하는 것이 더 쉽습니다 그들은 고체 모두 바위, 지원 미러링 캐시 모두 테라코타와 두 작품 모두 지원 메모리와에있는 -disk 캐싱.

3

다른 답변은 캐시에 대한 찬반/반대 사항을 논의합니다. 하지만 캐시에서 실제로 이익을 얻는 지 궁금합니다. 여기서 수행 할 계획과 캐시가 유익한 이유는 분명하지 않습니다. 데이터 세트를 사용하면 액세스 할 수 있습니다. 캐시는 다른 독립적 인 작업간에 재사용하는 데 도움이됩니다. 이것이 네가하는 일이라면, 캐싱이 도움이 될 수있다. 그러나 데이터 집합을 수행 할 수있는 큰 작업 인 경우 캐싱을 수행하면 아무 가치도 없습니다.

52

releases page으로 판단하면 OSCache는 2007 년 이후 활발하게 유지 관리되지 않았습니다. 이는 좋지 않습니다. 한편, EhCache는 지속적으로 개발 중입니다. 그 이유만으로도 나는 EhCache를 선택할 것입니다.

편집 2011 년 11 월 : OSCache는 나머지 OpenSymphony와 마찬가지로 종료되었습니다.

+5

+1 이것은 사용할 오픈 소스 소프트웨어를 결정할 때 매우 중요한 요소입니다. – Richard

+10

http://www.opensymphony.com/ OpenSymphony는 이제 공개적으로 그들이 죽었다 고 발표했습니다. – Pace

2

aop 기반 구성을 사용하여 스프링 모듈이있는 여러 스프링 프로젝트에서 oscache를 사용했습니다.

최근 스프링 3.x 프로젝트에서 oscache + spring 모듈을 사용하려고했지만 spring-modules 주석 기반 캐싱이 지원되지 않습니다 (포크로도 가능).

나는 최근이 프로젝트에 대해 알게 -

선언 주석 기반의 캐싱으로 Ehcache를 사용하여 봄 3.x를 지원

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

.

5

한 구현에서 다른 구현으로 마이그레이션하려는 경우 작업을 쉽게 수행 할 JSR 107을 준수하는 캐시를 선택하십시오. Ehcache가 더 널리 사용되고 널리 사용되는 Java 캐싱 솔루션 인 질문에 대해 구체적으로 설명하십시오. 우리는 Ehcache를 광범위하게 사용하고 있으며, 우리에게 효과적입니다.

0

OSCache는 몇 년 전에 버려 졌으므로 거의 죽었습니다. Cacheonix를 살펴 보시고 적극적으로 개발 하셨으며 우리는 웹 계층에서 캐싱을 지원하는 v.2.2.2를 방금 릴리스했습니다. 저는 커미터입니다. 질문이 있으시면 연락을 취하십시오.