2011-12-06 3 views
0

memcached에 대한 자습서를 읽었으며 기본 데이터베이스에 대한 요청의 고통을 덜어주기 위해 몇 가지 질문이 있습니다.다른 가상 운영 체제를 인스턴스화하기 만하면 memcached됩니까?

memcached이 작동하도록 인스턴스화되는 내용은 무엇입니까?
mysql이 설치된 가상 운영 체제입니까, 아니면 전체 데이터베이스가 램에 저장되어 있습니까?

내 다른 질문은 내가 블로그를 가지고 memcache를 사용하고 사용자가 브라우저에서 데이터를 요청하면 요청은 먼저 memcache에서 데이터를 확인하고 데이터가 존재하며 해당 사용자에게 표시된다는 것을 알 수 있습니다.

요청한 데이터가 원래 데이터베이스에있는 데이터와 일치하지 않으면 어떻게해야합니까? 캐시가 내가 그것을 바꿨다는 것을 어떻게 알 수 있습니까?
db의 데이터가 캐시 된 데이터와 동일한 지 항상 확인합니까?

+0

실제로 자신의 질문을 이해할 수 있습니까? – Macmade

답변

0

1
당신은 memcached를 위해 헌신하는 메모리의 양을 할당, 당신이 필요로하는 모든 컴퓨터에 memcached와 서버를 시작합니다.
그런 다음 memcached 라이브러리를 사용하면 모든 단일 서버에서 메모리 양을 사용하게됩니다.
NB 어떤 개체를 저장할 서버를 알 수있는 방법이 없습니다.

2
중복의 메커니즘은 간단합니다 : 당신이 개체에 대한 시간 제한을 설정할 수 있습니다. 제한 시간이 경과하면 시스템에서 해당 개체를 삭제합니다.
개체를 저장하려면 해당 개체에 동일한 키가 필요 없기 때문에 해당 개체에 해시 키를 할당해야합니다.

the memcached front-page 가입일
+0

삭제하는 것이 아니라 타임 아웃시 유효하지 않은 것으로 플래그를 지정하고 ** 덮어 쓸 수 있지만 만료 됨으로써 삭제되지는 않습니다. – StormByte

0

:

Memcached가 데이터베이스 호출 API 호출, 또는 페이지의 렌더링 결과에서 임의의 작은 데이터 청크 (문자열, 객체)에 대한 메모리 키 - 값을 저장한다.

memcached는 MySQL에서 자주 사용되지만 MySQL이나 다른 데이터베이스와 관련이 없습니다. 키에 의해 캐시 된 데이터에 대한 일정 시간 (O (1)) 액세스를 제공하는 단순한 키 - 값 저장소입니다. 데이터는 memcached 프로세스에 의해 메모리에 저장됩니다. (이것의 대부분은 on the FAQ으로 설명되어 있습니다).

두 번째 질문에 대해서는 memcached에 변경 사항이 통지되도록하는 것이 귀하의 신청/책임입니다. 캐시 된 데이터의 합리적인 만료 기간을 사용하거나 스크립트 또는 명령 줄 인터페이스를 사용하여 부실 항목을 수동으로 제거하여이 작업을 수행 할 수 있습니다. 일부 프레임 워크는 프레임 워크를 통해 변경이 이루어진 경우 memcached에 변경 사항 알림을 처리합니다. 궁극적으로, 사용자가 항상 최신 데이터에 실시간으로 액세스 할 수 있도록하려면 캐싱이 문제 해결을위한 좋은 해결책이 아닙니다. 캐싱은 부실 데이터를 때때로 제공하는 것이 원칙이므로 작동하지 않을 수있는 데이터를 캐싱하도록 응용 프로그램을 구성해야하지만 이어야하며이 신선한 데이터에 대한 신뢰할 수있는 소스를 항상 조회해야합니다.

관련 문제