2014-01-17 5 views
1

나는 각 개체가 "키"를 필요로하는 1000 개의 개체가 있습니다. 예를

를 들어

$this->setItem("1", $object); 
$this->setItem("2", $object); 

내 문제는 때마다 내가 $this->setItem() 또는 $this->addItem() 젠드는 .dat 파일을 새 폴더를 만드는 사용하는 것입니다.

내가 그러나 나는 따라서 $this->getItem("key")

로 전화 할 수 있어요, 모든 개체에 대해 하나의 .dat 파일을 생성하고 싶습니다, 나는이 두 함수의 차이점은 무엇입니까 물어 무엇입니까?

물론 addItem() 기능으로 목표를 달성 할 수있었습니다.

+0

정확히 똑같은 것을 똑같은 방식으로 수행하는 핵심 ZF 코드를 확인했습니다. – cptnk

답변

4

캐싱의 목적은 캐시 된 결과를 빠르게 검색하는 것입니다. ZF2가 모든 다른 캐시 키 (및 해당 데이터)를 단일 파일로 집계하는 경우 발생해야하는 모든 비싼 파일 검색/분할 등으로 인해 데이터를 빠르게 가져올 수 없습니다. 각 캐시 키에 대해 단일 파일을 생성하면이 프로세스가 간단 해집니다. ZF2는 캐시 키의 MD5 해시를 만들고 파일 시스템에서 그 이름의 파일을 직접 검색 할 수 있습니다. 표시되는 다른 디렉토리는 해시의 부분 문자열이므로 디렉토리의 양이 제한됩니다.

  • setItem은 항상 지정된 키에 데이터를 기록합니다 (데이터가 이미있는 경우 덮어 쓰기).
  • addItem은 아직 데이터가없는 경우에만 데이터를 씁니다.
+0

대단히 감사합니다. Bram, 이제는 이해할 수 있습니다. :) – user2521436

+0

답변을 수락 한 것으로 표시해주세요. –