2014-12-17 2 views
1

Ehcache를 사용하여 디스크에 절대로 저장해서는 안되는 중요한 데이터 (데이터는 주 메모리에만있을 수 있음)를 캐싱하려고합니다. 디스크에 디스크를 저장하는 것은 불법 인 데이터 유형이므로 특정주의를 기울여 처리해야합니다.Ehcache는 중요한 데이터를 디스크에 저장하지 않습니까?

우리는 이미 일반적인 캐싱 목적으로 Ehcache (테라코타 유무와 상관없이)를 사용하고 있습니다.

나는 Ehcache가 메인 메모리와 디스크 모두에서 캐시 할 수있는 옵션을 제공하며, 메인 메모리를 사용할 때 오버 플로우 디스크를 허용한다는 것을 알고있다.

저는 Ehcache를 처음 접했고 Ehcache를 구성하여이 특정 캐시가 디스크에 절대 닿지 않도록하는 방법을 알고 싶습니다. (우리는 현재 대부분 기본 설정을 사용하고있다.) 또한 데이터가 디스크에 저장되지 않았는지 확인하기 위해 구현이 실행되면 데이터가 저장되는 위치를 확인하는 방법이 있어야 좋을 것이다. 캐시 수준에서

+0

겠습니까 RAM 디스크 여기서 도와 줘? 나는 Ehcache를 모른다. 그러나 아마도 그것의 일부는 일시적인 저장 장치에 의해 뒷받침 될 수 있을까? – halfer

+0

이것은 성능이나 하드웨어의 문제가 아닙니다. 우리의 하드웨어가 RAM (주 메모리라고도 함) 일 때 휘발성 방식으로 데이터를 저장해야합니다. 질문은 특히 Ehcache 구성에 있습니다. 제 첫 번째 언어가 아닌 제 영어를 고쳐 주셔서 감사합니다 : P – stikku

+0

그래, 내 질문에 답해 줄 수 있니?Ehcache가 실제 디스크를 가리킬 수 있다면 RAM 디스크에서 실행되도록 구성 할 수 있습니까? Ehcache 전체가 귀하의 경우 휘발성 저장 장치에 의해 뒷받침되는 것이 허용 될 수 있습니까? – halfer

답변

1

:

레거시 overflowToDisk 구성 설정은 기본적으로 false입니다. 현대 persistence 요소가있는 경우 기본값은 none입니다. 두 경우 모두 구성된 캐시에는 디스크 계층이 없으므로 디스크에 항목을 쓰지 않습니다.

동일한 캐시 관리자가 디스크 백업 캐시를 호스팅하는 경우 해당 경로에 캐시 이름이있는 구성된 폴더 또는 java.io.tmpdir에 파일을 생성합니다. 이 이름은 경로에서 사용하도록 인코딩되었으므로 쉽게 일치하지 않을 수 있지만 디스크 백엔드가없는 캐시에는이 구조에서 생성 된 파일이 없다는 것을 평가할 수 있습니다.

1

필자가 아는 한, 디스크에 대한 지속성은 명시 적으로 활성화되어야합니다. 설명서 here을 참조하십시오. 아직 그러한 구성을 추가하지 않았다면 기본적으로 디스크에 저장되는 것이 의심 스럽습니다. 귀하의 ehcache 설정을 확인하십시오, 귀하의 캐시에 지속성 또는 첨부 파일과 관련된 것을 보시겠습니까?

일단 서비스가 실행 중이면 JMX를 통해 캐시 구성을 가져 와서 디스크 지속성이 있는지 여부를 확인할 수 있습니다. 그렇다면 유지되는 위치를 확인할 수 있습니다. 이 방법 JMX를 활성화 할 수 있습니다 및 직접 확인할 수 있습니다

CacheManager cm = net.sf.ehcache.CacheManager.getInstance(); 
MBeanServer mbs = java.lang.management.ManagementFactory.getPlatformMBeanServer(); 
net.sf.ehcache.management.ManagementService.registerMBeans(cm, mbs, true, true, true, true, true); 

는 예를 들어, 콩 net.sf.cache/CacheConfiguration/CacheManager/캐시/DiskPersistent 디스크 지속 사용 여부를 알려줍니다. 그러나 지속성은 CacheWriter을 통해 수행 할 수도 있습니다. 이것을 확인하려면 JConsole을 사용할 수 없지만 프로그래밍 방식으로 MBeanServer에 연결하고 net.sf.ehcache/Cache/CacheManager/cache/CacheConfiguration 속성을 가져와야합니다. 이것은 net.sf.ehcache.management.CacheConfiguration 인스턴스를 반환합니다.이 인스턴스는 등록 된 CacheWriter에 대해 알려주고 잘하면 사용중인 구성을 알려줍니다. (나는이에게 자신을 시도하지 않았습니다.)

또한, 데이터의 기밀성으로 매우 중요한 경우에, 당신은 또한 당신의 데이터를 암호화 고려해야한다 (캐시에, 와이어를 통해.)

관련 문제