2009-12-01 7 views
106

가능한 중복 :
Using Memcache vs Memcached with PHPMemcache Vs. memcached를

누군가가 나에게 PHP 환경에서 Memcache를하고 Memcached가 사이의 차이를 설명 할 수 있습니까? 다른 하나의 장점은 무엇입니까? 하나 또는 둘 중 하나를 선택하는 데 사용되는 기준을 제안 할 수 있습니까?

+6

serverfault에 속하지 않습니다. 이것은 memcache 및 memcached PHP 모듈에 관한 것입니다. 데몬 자체는 아닙니다. –

+0

http://serverfault.com/questions/63383/memcache-vs-memcached – Toad

답변

96

(소 Stolen from ServerFault)

나는 모두 기능적으로 동일하다고 생각하지만, 그들은 단순히 다른 저자를 가지고 있고, 하나는 단순히 더 적절하게 다른 것보다 이름이 지정됩니다. 여기


는 질문 아스 커에 의해 좌절을 설명하는 (익숙하지 않은 사람들을 위해) 명명 규칙에 빠른 배경 설명입니다 : 많은 * nix에서 스크립트 애플리케이션의 경우, 백엔드 작업을 수행하는 부분은 "이 디먼에"라고합니다 (Windows-land에서 "서비스"라고 생각하십시오.) 반면 인터페이스 또는 클라이언트 응용 프로그램은 데몬을 제어하거나 액세스하는 데 사용됩니다. 데몬은 클라이언트와 동일한 이름이 붙으며 문자 "d"가 추가됩니다. 예를 들어 "imap"은 "imapd"데몬에 연결하는 클라이언트입니다.

당신이 memcache에 모듈에 대한 소개 (발췌에서 memcache에와 memcached와의 차이를 알) 읽을 때이 이름 지정 규칙을 명확하게 memcache에 의해 준수되고 :

Memcache의 모듈은 편리한 절차 및 개체를 제공합니다 특히 효과적인 캐싱 데몬 인 인터페이스는 동적 웹 데이터베이스 부하를 데이터베이스로드를 줄이기 위해 특별히 설계되었습니다.

Memcache의 모듈은 또한 세션 핸들러 (memcache에)을 제공한다.

memcached에 대한 자세한 내용은 http://www.danga.com/memcached/에 있습니다. 이 memcached를 호출 실제 데몬과 같은 이름을 공유하기 때문에

여기서 좌절은 심하게 memcached를 명명 된 PHP 확장의 저자에 의해 발생합니다.

memcached와는이다 :주의는 또한 그 (PHP 모듈) memcached를 소개에서, 그것은 memcached를 데몬에 액세스 할 모듈에 의해 사용되는 공유 라이브러리 (또는 API)입니다 libmemcached의 언급을한다 고성능, 분산 메모리 객체 캐싱 시스템, 일반 속성이지만 동적 웹 애플리케이션 가속화에 사용하기위한 것임 데이터베이스로드 완화.

이 확장 프로그램은 libmemcached 라이브러리를 사용하여 에 memcached 서버와 통신하기위한 API를 제공합니다. 또한 세션 핸들러 (memcached)도 제공합니다.

libmemcached에 대한 정보는 일 수 있으며» http://tangent.org/552/libmemcached.html 일 수 있습니다.

+0

memcacheD는 MySQL 명령을 사용하여 데이터베이스 계층에서 작업 할 수 있다는 것을 알고있었습니다. 그렇게하면 코드가 특별한 캐싱 메서드를 호출 할 필요가 없습니다. 그것은 모두 데이터베이스에서 완료 되었습니까? –

+1

그래서 Memcache 대 차이. Memcached는 다른 저자가 있다는 것입니까 ?? – kta

+1

예, 제작자가 다르며 인터페이스가 다릅니다. – Jasen

103

이들은 동일하지 않습니다. Memcache는 오래되었지만 몇 가지 제한 사항이 있습니다. 리터럴 FALSE을 캐시에 저장할 수 없다는 것을 깨달을 때까지는 응용 프로그램에서 잘 사용하고있었습니다. 캐시에서 값 FALSE이 반환되면 값이 캐시에서 발견되지 않을 때 반환되는 FALSE와 같습니다. 어느 것이 어떤 것인지 확인할 방법이 없습니다. Memcached는 키가 발견되었는지를 알려주는 추가 방법 (다른 것들 중에서) Memcached::getResultCode을 가지고 있습니다.

나는이 제한 때문에 캐시에 FALSE 대신 빈 배열을 저장하도록 전환했습니다. 나는 여전히 Memcache를 사용하고 있지만, 나는 결정하는 사람들을 위해이 정보를 거기에 넣고 싶다.

+0

@Mike, 제한 사항이 여전히 남아 있습니까? 아니면 ** 고정 **입니까? – Pacerier

+13

@Mike, 당신은 Memcache와 Memcached의 완벽한 차이점을 설명했습니다. 그들은 값을 저장하는 동안 둘 다 아주 기본적인 차이가 있습니다. Memcache는 대부분 모든 값을 문자열로 간주하지만 Memcached는 값의 원래 유형을 저장합니다. 당신의 대답을위한 엄지 손가락! – NullPointer

+2

@Pacerier 사람들은 이러한 제한 사항이 수정되면 불평 할 것입니다. – Jasen