동일한 서버에서 APC와 memcached를 사용할 수 있습니까?
문제
객체 캐싱을 위해 Memcache를 사용하고 있는데 APC와 같은 opcode 가속기를 추가하고 싶습니다.둘 다 캐싱을 포함하기 때문에 "서로의 발가락을 밟을"지 확실하지 않습니다.memcache가 이미 OP 코드 가속기인지 확실하지 않습니다.
누군가 명확히 할 수 있습니까?나는 둘 다 사용하고 싶습니다. 약간 다른 용도로 말이죠.객체 캐싱을 위한 Memcache 및 코드 가속을 위한 APC
해결책
네, 동시에 두 가지를 함께 사용할 수 있습니다.
다른 팁
Memcache는 매번 구문 분석할 필요가 없도록 PHP 바이트코드를 메모리에 저장하는 APC 또는 XCache와 비교하여 분산 객체 캐시에 더 가깝습니다.그들의 주요 목적은 다릅니다.
예를 들어 사람들이 자주 요청하는 매우 CPU 집약적인 데이터베이스 쿼리가 있는 경우 해당 쿼리를 항상 다시 실행하는 대신 결과 객체를 Memcache에 캐시한 다음 참조할 수 있습니다.
APC와 XCache에는 유사한 객체 캐싱 기능이 있지만 호스트 시스템으로 제한됩니다.각 서버에 대해 쿼리를 다시 수행할 필요 없이 10개의 서로 다른 서버가 모두 해당 하나의 개체에 액세스할 수 있도록 하려면 어떻게 해야 합니까?Memcache 서버로 연결하면 됩니다.Memcache를 사용하면 나중에 더 많은 상자로 확장해야 할 경우 확장하는 데 도움이 되기 때문에 서버가 하나만 있는 경우에도 여전히 이점을 얻을 수 있습니다.
고려해야 할 주요 사항은 앱의 확장이 필요하다고 생각하는지 여부입니다.Memcache는 APC/Xcache 공유 객체에 대한 함수 호출에 비해 TCP 연결을 사용하여 액세스해야 하기 때문에 더 많은 오버헤드를 갖습니다.
그러나 Memcache에는 다음과 같은 이점이 있습니다.
- 디스크나 재실행 쿼리보다 빠릅니다.
- 여러 서버로 확장됩니다.
- 다양한 언어로 작동하며 개체는 PHP + APC/Xcache에만 고정되지 않습니다.
- 모든 프로세스/언어는 동일한 개체에 액세스할 수 있으므로 PHP 하위 프로세스에 빈 개체 캐시가 있는지 여부에 대해 걱정할 필요가 없습니다.하지만 PHP-FPM을 실행한다면 이는 큰 문제가 아닐 수도 있습니다.
대부분의 경우 Memcache에 객체를 캐싱하는 것이 훨씬 어렵지 않고 미래에 더 유연하기 때문에 권장합니다.
이 점을 명심하세요. 오직 캐싱 객체에 관해.Memcache는 아니다 바이트코드 또는 PHP 가속 기능이 있으므로 APC 또는 Xcache와 나란히 실행합니다.