2010-12-07 2 views
2

웹 응용 프로그램에서 작업 중이므로 확장 성을 위해 만들어야합니다. 빈번한 MySQL 쿼리를 캐시에 저장합니다. 나는 거의 모든 것을 구축하고 갈 준비가되어 있습니다. 그러나 데이터를 캐시 할 위치를 다루는 모범 사례에 관심이 있습니다. 저는 몇몇 사람들과 이야기를 나누었고 그들 중 하나는 모든 키/값을 모든 memcache 노드로 나눠야한다고 제안했습니다. 'somekey',memcache/php - multi memcache 노드를 사용한 모범 사례

가 걸쳐 분할 3 개 memcache에 서버를 말할 수 것 '이 값이'

내가 예를 저장하는 경우 의미.

더 좋은 방법이 있습니까? 또는 memcache가 1 대 1 관계에 더 많이 구축되어 있습니까? 예를 들어.

서버 A에 오류가있을 때까지 값을 저장하십시오. 서버 B로 가서 거기에 저장하십시오.

이것은 내가 수행 한 연구와 memcache에서 작업 한 과거 경험에서 현재 이해하고있는 내용입니다.

누가 올바른 방향으로 나를 가리켜 주시고 가장 좋은 방법인지 또는 완전히 믹스 업했는지 알려 주시기 바랍니다.

감사

답변

0

내가 memcache에 서버가 다운, 당신의 키를 재배포 할 수 없습니다 :)에서

가는 경우

http://php.net/manual/en/memcached.constants.php

이 방법을 참조하십시오 PHP에서 일관된 해싱을 사용하는 것이 내 경험 memcache 서버는 정말 신뢰할 수 있으며, 일반적으로 OS 업그레이드 등으로 인해 재시작됩니다.

일관된 해싱을 사용하지 않으면 서버가 나가서 되돌아 오는 경우 해당 서버에 오래된 데이터가 캐시되어있을 수 있습니다.

IE에서 Memcache 서버의 A, B

A: set key = 1234, value = 'abc', expires = 1 day 
B: 
after a time 
A: vanishes 
B: get key = 1234 
    returns nothing 
B: set key = 1234, value = 'def', exipres = 1 day 
after more time 
A: comes back! 

get_key (1234) 반환 'ABC' , A는 사용할 수 있기 때문이다.!

- 다니엘