Memcached para el almacenamiento en caché de sesiones y objetos
Utilice Memcached como almacén distribuido en memoria para objetos PHP.
Memcached para el almacenamiento en caché de sesiones y objetos es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué es Memcached?
Memcached es un almacén distribuido de pares clave-valor en memoria y de alto rendimiento. Se utiliza ampliamente para almacenar en caché los resultados de consultas a bases de datos y los datos de sesión en aplicaciones PHP.
Instalación
Instale el servidor Memcached y la extensión de PHP.
# Ubuntu/Debian:
$ apt install memcached php-memcached
$ service memcached start
# Verify:
$ php -m | grep memcachedConexión a Memcached
Cree una instancia de Memcached y añada uno o varios servidores.
<?php
$mc = new Memcached();
$mc->addServer("127.0.0.1", 11211);
// Multiple servers (distributed caching):
$mc->addServers([
["192.168.1.10", 11211],
["192.168.1.11", 11211],
]);Operaciones básicas de caché
Establezca, obtenga, elimine y reemplace entradas de caché.
<?php
// Set with TTL:
$mc->set("product:1", $productData, 600); // 10 min
// Get:
$product = $mc->get("product:1");
if ($mc->getResultCode() === Memcached::RES_NOTFOUND) {
$product = fetchFromDB(1);
$mc->set("product:1", $product, 600);
}
// Delete:
$mc->delete("product:1");Almacenamiento de sesiones con Memcached
Almacene las sesiones de PHP en Memcached para acceder a ellas rápidamente y compartirlas entre varios servidores web.
# php.ini:
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"Integración de Memcached con Laravel
Configure y utilice Memcached como controlador de caché de Laravel.
# .env
CACHE_DRIVER=memcached
MEMCACHED_HOST=127.0.0.1
// Usage is identical to Redis via Cache facade:
Cache::put("key", $value, 300);
$value = Cache::get("key");Memcached frente a Redis
Memcached: más sencillo, multihilo y completamente en memoria (sin persistencia). Redis: tipos de datos más completos, persistencia opcional (AOF/RDB), pub/sub y clústeres. Para el almacenamiento en caché básico, ambos ofrecen un rendimiento similar. En general, se prefiere Redis para proyectos nuevos.
Almacenamiento en caché distribuido
Memcached distribuye de forma nativa las claves entre varios servidores mediante hashing consistente. Esto permite escalar horizontalmente a medida que aumenta el tráfico.
CAS atómico (comparar e intercambiar)
Memcached admite operaciones CAS para actualizar un valor de forma segura solo si ningún otro cliente lo ha modificado desde la última vez que lo leyó.
<?php
$mc->get("counter", null, $cas);
$mc->cas($cas, "counter", $newValue, 60);Límites de TTL
El TTL de Memcached está limitado a un máximo de 30 días. Los valores superiores a aproximadamente 1 MB se rechazan. Mantenga los valores de caché pequeños y serialícelos de forma eficiente.
Supervisión
Utilice memcached-tool 127.0.0.1:11211 stats para comprobar la tasa de aciertos, el uso de memoria y las expulsiones. Una tasa de aciertos baja o un número elevado de expulsiones indica que la caché es demasiado pequeña.
Resumen
Memcached destaca en el almacenamiento en caché distribuido de objetos y sesiones de forma sencilla. En Laravel, establezca CACHE_DRIVER=memcached. Para producción y funciones más completas, prefiera Redis.
Comprobación rápida
¿Cuál es una diferencia importante entre Memcached y Redis?
Preguntas frecuentes
¿La lección «Memcached para el almacenamiento en caché de sesiones y objetos» es gratis?
Sí — el texto completo de «Memcached para el almacenamiento en caché de sesiones y objetos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Memcached para el almacenamiento en caché de sesiones y objetos»?
Utilice Memcached como almacén distribuido en memoria para objetos PHP. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar PHP Academy?
No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Memcached para el almacenamiento en caché de sesiones y objetos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de PHP Academy?
Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Por qué es importante la caché en PHP
- Redis como backend de caché para PHP
- Memcached para el almacenamiento en caché de sesiones y objetos
- Patrones de invalidación de caché