Memcache vs. Memcaché [duplicate]

4 minutos de lectura

avatar de usuario
luca bernardo

Posible duplicado:

Usar Memcache vs Memcached con PHP

¿Alguien me puede explicar la diferencia entre Memcache y Memcached en entorno PHP? ¿Cuáles son las ventajas de uno sobre el otro? ¿Puede sugerir también los criterios utilizados para elegir entre uno u otro?

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 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.

  • @Mike, ¿Siguen existiendo las limitaciones o fijado?

    – Pacerier

    19 de enero de 2015 a las 8:45


  • @Mike, explicaste la diferencia perfecta entre Memcache y Memcached. Ambos tienen una diferencia muy básica al almacenar valor. Memcache considera principalmente cada valor como una cadena, mientras que Memcached almacena el tipo original del valor. ¡Pulgares arriba por tu respuesta!

    – Puntero nulo

    17 de junio de 2015 a las 2:38

  • La gente de @Pacerier se quejaría si se arreglaran esas limitaciones.

    – Jasén

    13 de enero de 2016 a las 2:45

  • @Jasen ¿Por qué la gente se quejaría si se arreglaran esas limitaciones?

    – Gabe Hiemstra

    27 de noviembre de 2018 a las 11:36

  • porque cualquier código que estaba buscando "FALSE" y ahora encontrando FALSE de repente dejaría de funcionar. PHP es muy bueno, para mantener la compatibilidad, se necesitó wordpress para obligarlos a romper el correo ()

    – Jasén

    28 de noviembre de 2018 a las 3:07

avatar de usuario
Mez

(ParcialmenteRobado de ServerFault)

Creo que ambos son funcionalmente iguales, pero simplemente tienen diferentes autores, y uno simplemente se nombra más apropiadamente que el 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”.

Memcache se adhiere claramente a esta convención de nomenclatura 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 práctica interfaz de procedimientos 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 las aplicaciones web dinámicas al aliviar la carga de la base de datos.

Esta extensión utiliza la biblioteca libmemcached para proporcionar una API para comunicarse con los servidores de Memcached. También proporciona un controlador de sesión (memcached).

Puede encontrar información sobre libmemcached en »
http://tangent.org/552/libmemcached.html.

  • Entendí que memcacheD tiene la capacidad de trabajar en la capa de base de datos con comandos MySQL. De esa manera, su código ni siquiera tiene que llamar a métodos especiales de almacenamiento en caché. ¿Está todo completo en la base de datos?

    usuario1003932

    17 de octubre de 2012 a las 0:42

  • Entonces, la diferencia entre Memcache vs. Memcached es que tienen diferentes autores??

    – kta

    11 de septiembre de 2015 a las 7:48

  • sí, tienen diferentes autores y una interfaz diferente.

    – Jasén

    13 de enero de 2016 a las 2:44

  • ¡La gran diferencia es que (todavía) no hay un módulo php memcached para Windows! Solo puedes usar php_memcache.dll

    – CDR

    17/10/2016 a las 13:54

  • Parece que ahora hay una versión de Windows de memcached: commaster.net/content/installing-memcached-windows

    – Vicente

    24 de febrero de 2018 a las 0:12

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad