Predis — un cliente Redis flexible para PHP
\n\nRedis es un almacén de datos de alto rendimiento de tipo «clave-valor», que se utiliza a menudo para almacenamiento en caché, sesiones, colas y aplicaciones en tiempo real. Para trabajar con Redis desde PHP existen varias bibliotecas, y una de las más populares es Predis. Esta es una implementación completamente en PHP del cliente, que no requiere la instalación de extensiones adicionales (a diferencia de phpredis). Predis admite todos los comandos principales de Redis, agrupación en clústeres, replicación, Pub/Sub y trabajo con transacciones.
\n\nInstalación de Predis a través de Composer
\n\nLa instalación de Predis se realiza de forma estándar a través de Composer. Asegúrese de que Composer esté instalado en su proyecto y ejecute el comando:
\n\ncomposer require predis/predis\n\nDespués de la instalación, aparecerá una dependencia en el archivo composer.json y la biblioteca estará disponible en la carpeta vendor.
Conexión al servidor Redis
\n\nPara empezar, cree una instancia del cliente Predis. Por defecto, se conecta a 127.0.0.1:6379, pero puede especificar sus propios parámetros.
<?php\nrequire 'vendor/autoload.php';\n\nuse Predis\\Client;\n\n// Conexión con parámetros por defecto\n$client = new Client();\n\n// O especificando explícitamente el host y el puerto\n$client = new Client([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n]);\n\n// Si se requiere contraseña\n$client = new Client([\n 'host' => 'localhost',\n 'port' => 6379,\n 'password' => 'my_secret_password',\n]);\n?>\n\nSi Redis se ejecuta en un servidor remoto o utiliza un socket UNIX, simplemente cambie los parámetros correspondientes.
\n\nOperaciones básicas con datos
\n\nPredis admite todos los tipos de datos estándar de Redis: cadenas, hashes, listas, conjuntos y conjuntos ordenados. Veamos ejemplos básicos.
\n\nTrabajo con cadenas
\n\n<?php\n// Establecer un valor\n$client->set('user:100:name', 'Iván Petrov');\n\n// Obtener un valor\n$name = $client->get('user:100:name');\necho $name; // Iván Petrov\n\n// Verificar la existencia de una clave\nif ($client->exists('user:100:name')) {\n echo 'La clave existe';\n}\n\n// Eliminar una clave\n$client->del(['user:100:name']);\n?>\n\nTrabajo con hashes
\n\nLos hashes son convenientes para almacenar objetos — por ejemplo, datos de usuario.
\n\n<?php\n// Establecer campos de un hash\n$client->hmset('user:100', [\n 'name' => 'Ana Smirnova',\n 'email' => 'anna@example.com',\n 'age' => 28,\n]);\n\n// Obtener un campo\n$email = $client->hget('user:100', 'email');\n\n// Obtener todos los campos\n$userData = $client->hgetall('user:100');\nprint_r($userData);\n\n// Incrementar un campo numérico\n$client->hincrby('user:100', 'age', 1);\n?>\n\nTrabajo con listas
\n\nLas listas de Redis son ideales para colas y registros.
\n\n<?php\n// Agregar elementos al inicio de la lista (pila)\n$client->lpush('tasks', 'task1', 'task2', 'task3');\n\n// Agregar al final de la lista (cola)\n$client->rpush('tasks', 'task4');\n\n// Obtener todos los elementos de la lista\n$allTasks = $client->lrange('tasks', 0, -1);\nprint_r($allTasks);\n\n// Extraer el primer elemento\n$first = $client->lpop('tasks');\necho $first; // task3\n?>\n\nEstablecer el tiempo de vida de una clave (TTL)
\n\nUna de las potentes capacidades de Redis es la eliminación automática de claves después de un tiempo determinado. Esto se usa a menudo para el almacenamiento en caché.
\n\n<?php\n// Establecer una clave con TTL de 60 segundos\n$client->setex('cache:page', 60, 'Contenido HTML de la página');\n\n// O para una clave ya existente\n$client->expire('cache:page', 120);\n\n// Verificar el tiempo de vida restante\n$ttl = $client->ttl('cache:page');\necho "Quedan $ttl segundos";\n?>\n\nTrabajo con transacciones
\n\nPredis admite multi-comandos (trans
También en la biblioteca
Log4j 2 / SLF4J para Java: guía completa con ejemplos
Envío de correo electrónico en Go (Golang): bibliotecas y ejemplos de código
Bibliotecas WebSocket de Swift: Starscream y URLSessionWebSocketTask
GraphQL en Go: Guía completa sobre la biblioteca gqlgen