[Change all the underscore chars "_" to the dot "." for the links]
This question could be answered in two parts:
1) What are MEMCACHE and MEMCACHED?
2) What is the comparison between them?
I found all the answers trying to answer the second question without addressing the first. After a bit of studying, I have the conclusion as:
MEMCACHE and MEMCACHED refer to the same thing, or more specifically, refer to different parts on the same thing. MEMCACHE is the client of MEMCACHED (which is the server naturally), while LIBMEMCACHED is also a client to MEMCACHED. The two clients MEMCACHE and LIBMEMCACHED refer to the server named MEMCACHED from the same web site: www_memcached_org/, but might be or likely be on different versionings.
So, what is the problem coming from?
3.1) I would think that because of the nature of open source, each software comes individually and lacks of a general naming at upper level. When use this software, you need the server and a client as a pack in your application. The PHP site did not specifically point out or put each component on suitable angle consistantly. See the followings for MEMECACHE and MEMCACHED intro pages from the php site:
MEMCACHE -- www_php_net/manual/en/intro.memcache.php
Memcache module provides handy procedural and object oriented
interface to memcached, highly effective caching daemon, which was
especially designed to decrease database load in dynamic web applications.
The Memcache module also provides a session handler (memcache).
More information about memcached can be found at » www_memcached_org/.
MEMCACHED -- www_php_net/manual/en/intro.memcached.php
» memcached (http://www_memcached_org/) is a high-performance, distributed
memory object caching system, generic in nature, but intended for use in
speeding up dynamic web applications by alleviating database load.
This extension uses libmemcached library to provide API for communicating with
memcached servers. It also provides a session handler (memcached).
Information about libmemcached can be found at
» tangent_org/552/libmemcached.html.
Several points:
1) You can see both refer to MEMCACHED -- www_memcached_org/
2) In first doc, mentioned MEMCACHE is an "interface to memcached";
The second doc mentions "uses libmemcached library to provide API", which means LIBMEMCACHED is a client to MEMCACHED.
3.2) The problem also comes from PECL site pages:
memcached
pecl_php_net/package/memcached<br />
Package Information
Summary PHP extension for interfacing with memcached via libmemcached library
Maintainers Andrei Zmievski <andrei@php.net> (lead) [wishlist] [details]
License PHP
Description This extension uses libmemcached library to provide API for
communicating with memcached servers.
Homepage github_com/andreiz/php-memcached
memcache
pecl_php_net/package/memcache
Package Information
Summary memcached extension
Maintainers Antony Dovgal (lead) [wishlist] [details]
Pierre-Alain Joye (lead) [wishlist] [details]
Herman Radtke <hradtke@php.net> (lead) [details]
Mikael Johansson (lead) [details]
License PHP License
Description Memcached is a caching daemon designed especially for
dynamic web applications to decrease database load by
storing objects in memory.
This extension allows you to work with memcached through
handy OO and procedural interfaces.
Note: Both call "memcached" as a server, but the first also call memcached as a package name.
While you look at the second -- memcache as a client, you would think the first, titled
"memcached" is also a client.
3.3) A good comparison page also messed up:
code_google_com/p/memcached/wiki/PHPClientComparison
pecl/memcache pecl/memcached
First Release Date 2004-06-08 2009-01-29 (beta)
Actively Developed? Yes Yes
External Dependency None libmemcached
But it looks like it mentions the MEMCACHE used MEMCACHED is an older version from the current MEMCACHED server
3.4) Also, not only MEMCACHE and LIBMEMCACHED, there are other clients for MEMCACHED
see code_google_com/p/memcached/wiki/Clients<br />
-4- may be call:
Memcached-Memcache, package referring server MEMCACHED and client MEMCACHE
Memcached-Libmemcached, package referring server MEMCACHED and client LIBMEMCACHED
Memcached-Apr_memcache, package referring server MEMCACHED and client APR_MEMCACHE
...
or,<br />
Memcached with Memcache, package referring server MEMCACHED and client MEMCACHE
Memcached with Libmemcached, package referring server MEMCACHED and client LIBMEMCACHED
Memcached with Apr_memcache, package referring server MEMCACHED and client APR_MEMCACHE
...
would be better<br />