Blog de Gonzalo

Blog de programación de Gonzalo López

COMO USAR REDIS CON PHP

PHP

Redis es una base de datos en memoria que se utiliza como caché, cola de mensajes o almacenamiento de datos clave-valor. Usar Redis con PHP puede ser útil para mejorar el rendimiento y la escalabilidad de aplicaciones web. A continuación, se explica como usar usar Redis con PHP.
El uso de Redis es parecido a memcached aunque permite hacer muchas más cosas.
Los valores clave pueden ser cadenas simples, como en memcached, pero también pueden ser tipos más complejos como:

  • Hashes
  • Listas
  • Conjuntos ordenados o no ordenados
Todo los datos se guardan en la memoria por lo que es bastante rápido. Redis también se puede usar almacenar sesiones de php.
Algunos ejemplos de redis:

// Crear una instancia de Redis
$redis = new Redis();

try {
    // Conectar a Redis en localhost y puerto 6379 (por defecto)
    $redis->connect('127.0.0.1', 6379);
    echo "Conexión exitosa a Redis
"; // Guardar un valor en Redis $redis->set("clave", "Hola, Redis!"); // Recuperar el valor de Redis $valor = $redis->get("clave"); echo "El valor almacenado es: " . $valor . "
"; // Configurar un valor con tiempo de expiración (TTL) $redis->setex("temporal", 10, "Este valor expira en 10 segundos"); echo "Valor temporal guardado.
"; // Verificar si la clave existe if ($redis->exists("clave")) { echo "La clave 'clave' existe en Redis.
"; } else { echo "La clave 'clave' no existe en Redis.
"; } $claves = $redis->keys('*'); $redis->mset(array('clave:1 => 'Valor1', 'clave:2' => 'valor2', 'clave:3' => 'valor23')); $claves = $redis->keys('clave:*'); // Eliminar una clave $redis->del("clave"); echo "Clave 'clave' eliminada.
"; } catch (Exception $e) { echo "Error al conectar a Redis: " . $e->getMessage(); }
Explicación del ejemplo anterior:
  • new Redis(): Crea una instancia de Redis para interactuar con el servidor.
  • connect: Establece la conexión con el servidor Redis. Usa la IP y el puerto (por defecto 127.0.0.1 y 6379).
  • set y get: Almacena un valor en Redis (set) y recupera el valor almacenado (get).
  • setex: Guarda un valor con tiempo de expiración (en segundos).
  • exists: Comprueba si una clave específica existe en Redis.
  • keys('*'): Devuelve todas las claves guardadas en Redis.
  • mset: Guarda múltiples hashes en Redis.
  • keys('clave:*'): Recupera múltiples hashes en Redis, que empiecen por clave:.
  • del: Elimina una clave de Redis.
Los ejemplos que he puesto son bastantes sencillos pero hay más posibilidades.
También podéis aprender como usar sesiones con redis en php y como usar memcached en php.

Compartir en twitter