No son idénticos. Memcache es más antiguo pero tiene algunas limitaciones. Estaba usando muy bien en mi aplicación hasta que me di cuenta de que no puedes almacenar el literal FALSE
en caché. Valor FALSE
devuelto desde la memoria caché es lo mismo que FALSO devuelto cuando no se encuentra un valor en la memoria caché. No hay manera de comprobar cuál es cuál. Memcached tiene un método adicional (entre otros) Memcached::getResultCode
eso le dirá si se encontró la clave.
Debido a esta limitación, cambié a almacenar matrices vacías en lugar de FALSE
en caché. Sigo usando Memcache, pero solo quería compartir esta información con las personas que están decidiendo.
(Parcialmente robado de ServerFault)
Creo que ambos son funcionalmente iguales, pero simplemente tienen diferentes autores, y el nombre de uno es más apropiado que el del otro.
Aquí hay un breve resumen de las convenciones de nomenclatura (para aquellos que no están familiarizados), que explica la frustración del autor de la pregunta:para muchas aplicaciones * nix, la pieza que hace el trabajo de back-end se llama "daemon" (piense en "servicio" en Windows- land), mientras que la interfaz o la aplicación cliente es lo que usa para controlar o acceder al daemon. La mayoría de las veces, el daemon se denomina igual que el cliente, con la letra "d" añadida. Por ejemplo, "imap" sería un cliente que se conecta al demonio "imapd".
Esta convención de nomenclatura se está adhiriendo claramente a Memcache cuando lee la introducción al módulo de Memcache (observe la distinción entre Memcache y Memcached en este extracto):
El módulo Memcache proporciona una interfaz práctica y orientada a objetos para Memcached, un demonio de almacenamiento en caché altamente efectivo, que fue especialmente diseñado para disminuir la carga de la base de datos en aplicaciones web dinámicas.
El módulo Memcache también proporciona un controlador de sesión (memcache).
Puede encontrar más información sobre Memcached en »http://www.danga.com/memcached/.
La frustración aquí es causada por el autor de la extensión de PHP que fue mal llamada memcached, ya que comparte el mismo nombre que el demonio real llamado memcached. Tenga en cuenta también que en la introducción a memcached (el módulo php), se menciona libmemcached, que es la biblioteca compartida (o API) que utiliza el módulo para acceder al demonio memcached:
memcached es un sistema de almacenamiento en caché de objetos de memoria distribuida de alto rendimiento, de naturaleza genérica, pero diseñado para acelerar aplicaciones web dinámicas al aliviar la carga de la base de datos.
Esta extensión usa libmemcachedlibrary para proporcionar una API para comunicarse con servidores Memcached. También proporciona un controlador de sesión (Memcached).
Puede encontrar información sobre libmemcached en »http://tangent.org/552/libmemcached.html.