PHP에는 memcache 와 memcached 라는 두 개의 memcached 라이브러리가있는 것 같습니다 . 차이점은 무엇이며 어떤 것을 사용해야하는지 어떻게 알 수 있습니까? 오래된 것입니까? memcached는 더 많은 메소드를 제공하는 것 같습니다. 개발이 가장 많았다는 것을 의미한다고 생각하지만 외부 C / C ++ 라이브러리가 필요 하므로 설치할 수 있는지 확실하지 않습니다.
memcache는 오래 지속되었으며 추가 라이브러리가 필요하지 않으며 Windows 용 사전 바이너리 를 미리 컴파일 한 것 같습니다 ! 나는 그것이 더 나은 선택이 될 것이라고 생각합니다. 그러나 memcached (서버)에 익숙하지 않아 memcached (php)에 여분의 문제를 일으킬만한 중요한 기능이 있는지 확실하지 않습니다.
답변
Memcached 클라이언트 라이브러리는 최근에 안정적으로 릴리스되었습니다. 그것은 사용중인 디그 와 구현 훨씬 더의 (지금은 더 이상 디그와 안드레이 Zmievski에 의해 디그 개발되지 않았다) memcached와 프로토콜 이전 memcache에 클라이언트보다. memcached의 가장 중요한 기능은 다음과 같습니다.
- CAS 토큰 . 이로 인해 제 인생이 훨씬 쉬워졌고 오래된 데이터를 쉽게 예방할 수있는 시스템입니다. 캐시에서 무언가를 가져올 때마다 cas 토큰 (더블 번호)을받을 수 있습니다. 해당 토큰을 사용하여 업데이트 된 객체를 저장할 수 있습니다. 스레드가 실행되는 동안 다른 사람이 값을 업데이트하지 않으면 스왑이 성공합니다. 그렇지 않으면 최신 cas 토큰이 작성되고 데이터를 다시로드하고 새 토큰으로 다시 저장해야합니다.
- 얇게 썬 빵부터 콜백을 읽는 것이 가장 좋습니다. 내 코드의 대부분을 단순화했습니다.
- getDelayed () 는 스크립트가 결과가 서버에서 되돌아 오기를 기다리는 시간을 줄일 수있는 유용한 기능입니다.
- memcached 서버는 매우 안정적이지만 가장 빠르지는 않습니다. 최신 클라이언트에서는 ASCII 대신 이진 프로토콜을 사용할 수 있습니다.
- 복잡한 데이터를 memcached에 저장할 때마다 클라이언트는 항상 값의 직렬화를 수행하는 데 사용되지만 속도가 느리지 만 이제 memcached 클라이언트에서는 igbinary 를 사용할 수 있습니다 . 지금까지 나는 이것이 얼마나 많은 성능을 얻을 수 있는지 테스트 할 기회가 없었습니다.
이 모든 점은 최신 클라이언트로 전환하기에 충분했으며 그것이 매력처럼 작동한다고 말할 수 있습니다. libmemcached 라이브러리 에 대한 외부 종속성이 있지만 그럼에도 불구하고 Ubuntu 및 Mac OSX에 설치했지만 지금까지 아무런 문제가 없습니다.
최신 라이브러리로 업데이트하기로 결정한 경우 최신 서버 버전으로 업데이트하고 멋진 기능도 제공하는 것이 좋습니다. 컴파일 하려면 libevent 를 설치해야 하지만 우분투에서는 큰 문제가되지 않았습니다.
지금까지 프레임 워크가 새로운 memcached 클라이언트를 선택하는 것을 보지 못했지만 (내가 추적하지는 않지만) Zend 가 곧 출시 될 것이라고 가정 합니다.
최신 정보
Zend Framework 2에는 Memcached 용 어댑터가 있습니다.
답변
Windows를 사용하는 경우 비교가 짧아집니다. memcache
사용 가능한 유일한 클라이언트 인 것 같습니다.
답변
이것은 2013 년입니다. 2009 년 코멘트는 잊어 버리십시오. 마찬가지로, 심각한 트래픽로드를 실행중인 경우에는 Windows 기반 memcache를 사용하여 수행하는 방법도 고려하지 마십시오. 대규모 (500 개 이상의 프런트 엔드 웹 서버) 및 20 개 이상의 백엔드 데이터베이스 서버 및 복제본 (mysql 및 mssql 믹스)을 처리 할 때 memcached 서버 팜 (그룹 12 개 서버)은 25K에 응답하는 여러 개의 대용량 OLTP 응용 프로그램을 지원합니다. ~ 40K mc-> 초당 전화 받기 이러한 호출은 않는 것들이다 NOT 데이터베이스에 도달해야합니다.
IMHO는 이러한 memcached 사용을 통해 새로운 DB 서버 및 라이센스에 대한 CAPEX 및 대규모 상용 설계에 대한 지원 계약에 대해 $$$$를 절약했습니다.
답변
Memcached는 최신 API이며, 서버 팜이있는 경우 세션 공급자로 memcached를 제공합니다.
버전이 여전히 0.2로 낮지 만 두 가지를 모두 사용했지만 큰 문제가 발생하지 않았으므로 새로운 버전이므로 memcached로 이동합니다.