memcached를 사용하고 싶습니다
http://www.danga.com/memcached/
나는 그것을 통해 설치했다 yum install memcached
그러나 이제 PHP에 연결해야하며 memcache라는 확장명과 memcached라는 확장명이 있습니까? ARGH
http://us3.php.net/manual/en/book.memcache.php
http://us3.php.net/manual/en/book.memcached.php
누군가 나를 여기서 올바른 방향으로 안내 할 수 있습니까? 어느 쪽이 효과가 있습니까?
또한 로컬 인 경우에도 작동하려면 포트를 열어야합니까? 그것을 실행 한 후 telnet 127.0.0.1 11211을 시도하고 연결이 거부됩니다.
답변
짧은 대답 : 하나는 당신이 찾고있는 것이지만, 나의 첫 번째 선택은 순전히 명명법의 올바른 사용에 기초하여 memcache (첫 번째 목록) 입니다.
이제 내가 결론을 내리는 방법은 다음과 같습니다.
다음은 질문자에 의한 좌절을 설명하는 명명 규칙에 익숙하지 않은 사용자를위한 빠른 배경 지식입니다. 많은 * nix 응용 프로그램의 경우 백엔드 작업을 수행하는 부분을 “데몬”(Windows의 “서비스”라고 함) 인터페이스 또는 클라이언트 응용 프로그램은 데몬을 제어하거나 액세스하는 데 사용하는 것입니다. 데몬은 대개 “d”문자가 추가되어 클라이언트와 동일하게 이름이 지정됩니다. 예를 들어 “imap”은 “imapd”데몬에 연결되는 클라이언트입니다.
이 명명 규칙은 memcache 모듈에 대한 소개를 읽을 때 memcache 에 의해 명확하게 준수됩니다 (이 발췌에서 memcache와 memcached의 차이점에 주목).
Memcache 모듈은 특히 동적 웹 애플리케이션에서 데이터베이스로드를 줄 이도록 설계된 memcached의 매우 효과적인 캐싱 데몬에 편리한 절차 및 객체 지향 인터페이스를 제공합니다.
Memcache 모듈은 세션 핸들러 (memcache)도 제공합니다.
memcached에 대한 자세한 내용은»
http://www.danga.com/memcached/를 참조하십시오 .
좌절은 여기에 심하게 명명 된 PHP 확장의 저자에 의해 발생 되는 memcached 는라는 실제 데몬과 같은 이름을 공유하기 때문에, memcached를을 . 공지 사항은 또한이에 (PHP 모듈) memcached를 소개 , 그것을 언급한다 libmemcached memcached를 데몬에 액세스 할 모듈에 의해 사용되는 공유 라이브러리 (또는 API)입니다 :
memcached는 본질적으로 일반적인 고성능 분산 메모리 객체 캐싱 시스템이지만 데이터베이스로드를 완화하여 동적 웹 응용 프로그램의 속도를 높이는 데 사용됩니다.
이 확장은 libmemcached 라이브러리를 사용하여 memcached 서버와 통신하기위한 API를 제공합니다. 또한 세션 처리기 (memcached)를 제공합니다.
libmemcached에 대한 정보는» http://tangent.org/552/libmemcached.html 에서 찾을 수 있습니다
.
요약하자면 둘 다 기능적으로 동일하지만 저자가 다르기 때문에 하나는 다른 저자보다 더 적절하게 명명됩니다.
답변
PHP 클라이언트 비교 를보고 싶을 것입니다 .
짧은 버전 : 둘 다 작동하며 대부분의 경우 어느 쪽이든 잘 작동합니다.
다른 문제와 관련하여 : 그렇습니다 telnet 127.0.0.1 11211
. 방화벽이 로컬 호스트와의 통신을 차단하는 방화벽은 거의 없습니다. 연결할 수없는 경우을 수행하여 memcached가 실제로 실행 중인지 확인하십시오. ps auxwww | grep memcached
그러면 memcached를 시작하는 데 사용되는 명령 줄 인수도 표시됩니다. 인수 중 하나는 -p 11211
다른 포트 번호 여야합니다 . man memcached
가능한 모든 주장의 의미를 참조하십시오 .
답변
Nate의 링크에서 알 수 있듯이 두 가지 모두 간단한 사용법으로 완벽하게 작동합니다. 그러나 memcached는 memcached에서 최고의 성능을 얻을 수있는 더 많은 기능을 지원합니다. 이진 프로토콜은 클라이언트와 서버간에 전송하는 데 필요한 데이터 양을 줄입니다. 멀티 겟과 멀티 셋을 사용하면 여러 항목을 동시에 가져 오거나 설정할 수 있습니다. memcache에서 더 많은 oomph가 필요한 경우 memcached가 더 나은 모듈입니다. libmemcached를 사용하면 라이브러리 자체가 PHP 전용 버전보다 더 최적화되어있을 수 있습니다.
Memcached는 8 개월 전에 릴리스 된 memcache와 비교하여 가장 최신 모듈입니다. 이전 버전의 PHP를 대상으로해야하는 경우 실제로 memcache 만 사용할 수 있습니다.
답변
나이가 많고 버그가 php-memcache
많은 것이 가장 적절한 이름으로 보이기 때문에 호출 됩니다. Digg 사람들이 독립적으로 개발 한 새롭고 더 나은 버전은 대신 php-memcached
명확성을 위해 명명 되었습니다.
이름의 정확성만을 기준으로 다른 것을 선택하도록 권장하는 사람들에게는 실제로 기술적 인 조언을 제공하는 비즈니스가 없습니다.
답변
최근에 php-memcache를 사용 했으므로 php-memcached를 가리켜 야합니다.
여기 머리 위로 몇 가지 이유가 있습니다 ..
1) getErrorCode () 또는 이와 동등한 메소드가 없으므로 get ()이 FALSE를 리턴하면 memcache에 저장된 값이 false인지 또는 어떤 종류의 문제가 있는지 여부를 알 수 없습니다.
2) 일관된 해싱을위한 해싱 알고리즘은 libmemcached로 구축 된 많은 클라이언트 라이브러리와 같은 다른 구현과는 다른 것으로 보입니다. 즉, 여러 언어로 동일한 memcache 클러스터를 사용하려는 경우 PHP 클라이언트에 값을 저장하면 다른 클라이언트에서는 찾을 수없는 문제가 발생할 수 있습니다.
답변
오늘날 모두 문제가 있습니다. PECL / memcache는 구식이며 신뢰할 수 있지만 구식입니다. PECL / memcached 1.x는 베타 버전입니다. 일부 기능은 숫자 키를 처리하지 않으며 영구 연결을 사용할 때 연결이 누출됩니다. 일부 (모두?)는 GitHub에서 수정되고 있으며 2.x의 어느 시점에 출시되지만 오늘은 아닙니다. 더 자세한 검토는 http://brian.moonspot.net/php-memcached-issues를 참조하십시오
답변
저는 “전문가 PHP와 MySQL”책을 쓰고 있습니다. 차이점에 대해 거의 똑같은 글을 썼습니다. 내가 추천 한 것은 PECL / memcached입니다. # 1-모든 기능을 갖춘 우수한 C 라이브러리 # 2를 둘러 쌉니다. 더 최근에 유지 보수됩니다. # 3-더 많은 기능. PECL / memcache와의 차이가 없습니다.