2010-01-29 11 views
0

우리 서버 2에서 어떤 삽입을하기 전에 자신의 캐시를 삭제하고,캐싱 문제

server architecture http://i48.tinypic.com/2czybts.jpg

문제는이 캐시 디렉토리가있다, 우리 CakePHP의 응용 프로그램에 대해 여러 웹 서버를 사용하고 필요 그의 데이터베이스. 하지만 서버 1은 데이터베이스가 변경된 것을 모릅니다. 따라서 캐시 된 서버 1이 지워지지 않습니다.

새 웹 요청이 서버 2에 오면 새로운 캐시 파일을 생성하고 좋은 결과를 반환합니다. 이 서버 1에 올 때, 그는 똑같은 결과 :(를 보여줍니다.

를 궁금해 우리는 다양한 물리적 서버 사이의 캐시 디렉토리를 공유 할 수있는 방법은 성능 저하없이,있다.

우리는 증가 할 수 웹 서버, 그래서

을 읽기 위해이

덕분에 좋은 장기적인 솔루션을 권장하십시오

답변

2

내가. 캐싱 메커니즘으로 Memcache를를 사용으로 보일 것이다 그런 다음 하나 개의 서버에 Memcache의 데몬 (memcached와)을 설정 할 수 있습니다 두 서버를 하나의 캐시에 연결하십시오. 설정에 대한 자세한 내용은 core.php를 참조하십시오. u는 memcache PHP ext와 데몬을 설치해야하지만, 그만한 가치가 있습니다.

+0

+1, becoz memcached가 내 목적을 달성했으며 cakephp 프레임 워크와 사전 통합되어 제공됩니다. – Ish

1

가장 쉬운 방법은 nfs (파일) 서버에서 제공되는 캐시 디렉토리를 설정하는 것입니다. 당신은 다른 것을 바꿀 필요가 없을 것입니다.

퍼포먼스를 위해서 bucho가 말했듯이 Memcache에 충실 하겠지만 애플리케이션 코드를 변경해야 할 가능성이 높습니다.

+0

+1, 대체 솔루션 – Ish