2014-11-16 5 views
0

나는 Silex 및 Doctrine ORM과 협력하고있었습니다. 데이터베이스 쿼리를 더 빠르게 수행하기 위해 필자는 일종의 캐싱을 원했습니다.Doctrine ORM과 함께 로컬 캐시 사용

좋은 캐싱 프레임 워크를 제공하는 PhpFastCache를 살펴 봤지만 Doctrine과 실제로 통합되지는 않습니다. 가장 중요한 부분은 memcached와 같은 외부 서비스와 독립적으로 로컬 캐시를 가질 수 있다는 것입니다. 공유 호스트에서 호스팅되는 소규모 사이트가 있으므로 클라우드에서 서비스하는 데 돈을 쓸 수 없습니다.

또한 Doctrine ORM의 기존 캐시 공급자를 살펴본 결과 모두 외부 캐시 서비스를 사용합니다.

내가 아는 마지막 것은 PhpFastCache를 사용하여 공급자를 직접 작성하는 것이지만 사용할 수있는 대체 온라인이 없다는 것을 확실히하고 싶었습니다. 나는 오늘 하루 종일 온라인으로 검색하여 최선을 다했지만, 나는 단지 확신하고 싶었다. 내가 APC 및 Memcache를 살펴 보았다,하지만 난 공유 호스팅에 내 사이트를 가지고 있고, 나는 APC/Memcache의 :(의 PECL 모듈을 설치하기위한 전용 호스팅을 필요

답변

3

교리가 포함

그냥 추가 할 수 있습니다. 아주 문서화하지 않는 것 몇 캐시 된 드라이버를 제공합니다. PhpFastCache 하나가 아니라 파일 시스템에 직접에 를 캐시 두 가지가 있습니다. FilesystemCachePhpFileCache를 확인하십시오. 당신은 저장소에 full list을 볼 수 있습니다.

내가 추측해야한다면, FilesystemCache이 당신이 원하는 것입니다. 직렬화 된 데이터를 일반 파일에 저장합니다. PhpFileCache는이를 PHP 파일로 저장하고 나중에 include을 사용하여 읽습니다. 즉, PHP에서 읽는 동안 구문 분석해야한다는 것을 의미합니다. APC와 같은 PHP 바이트 코드 캐시를 사용하지 않으면 속도가 느려질 수 있습니다.

메모리가 아닌 파일 시스템에서 읽는 것이기 때문에 어느 솔루션도 Memcache와 같이 빠르지는 않지만 자주 실행되는 느린 데이터베이스 쿼리를 최적화해야합니다.

편집 : 키란 Madipally가 지적했듯이, CacheProvider를 확장하여 자신의 PhpFastCache 드라이버를 만들 쉽게해야합니다.

+0

덕분에, 시작하는 좋은 방법처럼 보인다. 또한 PhpFastCache를 사용하여 FileSystemCache 공급자가 생성 된 방식으로 캐시 공급자를 확장 할 수 있다고 생각합니다. 그것에 시간을 할애하고 쉽게 할 수 있다면 - 나는 PhpFastCache로 캐시 제공자를 가질 것입니다 :). –

+0

opcache를 활성화하면 PhpFileCache가 memcached 및 apc 성능에서 연기가 날 것입니다. 그것은 unsung 캐시입니다. 매우 동적 인 것은 아니기 때문에 많이 변하지 않는 것들에 가장 적합합니다. – goat