APCu, acrónimo de Alternative PHP Cache, es una extensión de código abierto para PHP diseñada para proveer un sistema de cacheo de opcode y variables de usuario, lo que mejora considerablemente el rendimiento de las aplicaciones web almacenando en caché los datos y los scripts compilados.
APCu se derivó de la extensión original APC (Alternative PHP Cache), que proporcionaba tanto caching de opcode como de datos. Sin embargo, con la introducción de PHP 5.5, el caching de opcode se integró directamente en PHP a través de la extensión OPcache. Esta separación dejó a APCu como extensión especializada únicamente en el almacenamiento en caché de datos de usuario.
La instalación de APCu puede variar ligeramente según el sistema operativo. Aquí se proporcionan instrucciones generales:
1. Instalar mediante PECL: \`\`\`sh pecl install apcu \`\`\` Durante la instalación, es posible que se necesite disponer de herramientas de construcción como `php-pear` y `php-dev`.
1. Configurar PHP: Después de instalar APCu, edite el archivo `php.ini` para cargar la extensión: \`\`\`ini extension=apcu.so apc.enabled=1 apc.shm\_size=32M \`\`\` Aquí, `apc.shm_size` define la memoria compartida asignada para el almacenamiento en caché.
Para utilizar APCu en scripts PHP, hay una serie de funciones disponibles:
1. almacenar un valor en caché: \`\`\`php apcu\_store(‘clave’, ‘valor’); \`\`\`
1. recuperar un valor desde caché: \`\`\`php $valor = apcu\_fetch(‘clave’); \`\`\`
1. comprobar si una clave existe en caché: \`\`\`php $existe = apcu\_exists(‘clave’); \`\`\`
1. eliminar una clave de caché: \`\`\`php apcu\_delete(‘clave’); \`\`\`
1. almacenamiento masivo en caché: \`\`\`php $datos = array(‘clave1’ => ‘valor1’, ‘clave2’ => ‘valor2’); apcu\_store($datos); \`\`\`
Ejemplo 1: Cacheo de Resultados de Base de Datos
```
$id = 10;
$cacheKey = “resultado_{$id}”;
if (apcu_exists($cacheKey)) {
$resultado = apcu_fetch($cacheKey);
} else {
// Supongamos que $db es una instancia de PDO
$resultado = $db->query(“SELECT * FROM tabla WHERE id = $id”)->fetch();
apcu_store($cacheKey, $resultado, 300); // Cachear por 5 minutos
}
```
Ejemplo 2: Contador de Visitas Simple
```
$contadorKey = ‘visitas’;
if (apcu_exists($contadorKey)) {
$visitas = apcu_fetch($contadorKey) + 1;
} else {
$visitas = 1;
}
apcu_store($contadorKey, $visitas);
echo “Número de visitas: $visitas”;
```
- [Sitio Web Oficial de PHP: APCu](https://www.php.net/manual/es/book.apcu.php)
- [APCu en GitHub](https://github.com/krakjoe/apcu)
- [Guía de Instalación de APCu en DigitalOcean](https://www.digitalocean.com/community/tutorials/how-to-install-apcu-on-ubuntu-16-04)
- [Documentación y Ejemplos de Uso](https://www.php.net/manual/en/book.apcu.php)
APCu, como extensión ligera y eficiente, sigue siendo una herramienta valiosa para optimizar el rendimiento de aplicaciones PHP al limitar las operaciones repetitivas y costosas.