문제

이전에는 이와 같은 캐시를 사용한 적이 없습니다.문제는 데이터베이스에서 500,000개 이상의 레코드를 로드하고 일부 선택/필터링을 매우 빠르게 수행하고 싶다는 것입니다.

캐시를 활용하려고 생각 중인데, 사전에 찾았습니다. EHCache 그리고 OS캐시, 어떤 의견이 있나요?

도움이 되었습니까?

해결책

둘 다 꽤 견고한 프로젝트입니다.매우 기본적인 캐싱 요구사항이 있는 경우 둘 중 하나가 다른 것만큼 잘 작동할 것입니다.

가능하다면 데이터베이스 쿼리에서 필터링을 수행하는 것을 고려할 수도 있습니다.종종 더 작은 결과 집합을 반환하는 조정된 쿼리를 사용하면 500,000개의 행을 메모리에 로드한 다음 필터링하는 것보다 더 나은 성능을 얻을 수 있습니다.

다른 팁

그들의 판단에 따르면 릴리스 페이지, OSCache는 2007년 이후 적극적으로 유지관리되지 않았습니다.이것은 좋은 일이 아닙니다.반면 EhCache는 지속적으로 개발되고 있습니다.그 이유만으로도 EhCache를 선택하겠습니다.

2013년 11월 편집:OpenSymphony의 나머지 부분과 마찬가지로 OSCache는 죽었습니다.

저는 JCS(http://jakarta.apache.org/jcs/) 견고하고 프로그래밍 방식으로 사용하기 쉬운 것 같습니다.

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

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

다른 답변에서는 캐시의 장단점에 대해 논의합니다.하지만 실제로 캐시의 이점을 누릴 수 있는지 궁금합니다.여기서 무엇을 하려는지, 캐시가 왜 도움이 되는지 정확히 명확하지 않습니다.사용할 수 있는 데이터 세트가 있는 경우 해당 데이터에 액세스하면 됩니다.캐시는 독립적인 작업 간에만 사물을 재사용하는 데 도움이 됩니다.이것이 당신이 하고 있는 일이라면 캐싱이 도움이 될 수 있습니다.그러나 데이터 세트를 운반할 수 있는 큰 작업이라면 캐싱은 아무런 가치도 추가하지 않습니다.

어느 쪽이든 Spring 모듈과 함께 사용하는 것이 좋습니다.캐시는 애플리케이션에 투명할 수 있으며 캐시 구현은 아주 쉽게 교체할 수 있습니다.OSCache 및 EHCache 외에도 Spring 모듈은 Gigaspaces 및 JBoss 캐시도 지원합니다.

비교를 하자면....OsCache는 구성하기가 더 쉽습니다. Ehcache에 더 많은 구성 옵션이 있습니다.

둘 다 매우 견고하며 둘 다 미러링 캐시를 지원하고 둘 다 Terracotta와 함께 작동하며 둘 다 메모리 내 및 디스크 간 캐싱을 지원합니다.

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

최근 Spring 3.x 프로젝트에서 oscache + spring 모듈을 사용하려고 했으나 spring-modules 주석 기반 캐싱이 지원되지 않는다는 사실을 발견했습니다(포크에서도).

나는 최근에 이 프로젝트에 대해 알게 되었습니다.

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

ehcache를 사용하는 선언적 주석 기반 캐싱으로 spring 3.x를 지원합니다.

나는 주로 EhCache를 사용합니다. 왜냐하면 EhCache는 Hibernate의 기본 캐시 제공자였기 때문입니다.캐싱 솔루션 목록이 있습니다. Java-Source.net.

주요 캐싱 솔루션을 비교한 링크가 있었습니다.찾으면 이 답변을 업데이트하겠습니다.

OSCache는 몇 년 전에 버려졌기 때문에 거의 죽었습니다.Cacheonix를 살펴보세요. 활발하게 개발되었으며 웹 계층에서 캐싱을 지원하는 v.2.2.2를 방금 출시했습니다.저는 커미터이므로 궁금한 점이 있으면 연락하세요.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top