Introducción a Redis y PHP para almacenamiento rápido de datos

El popular motor de almacenamiento de Redis es una herramienta excelente e imprescindible en el arsenal de cualquier desarrollador de software. El motor de almacenamiento en memoria permite un almacenamiento y recuperación de datos increíblemente rápidos, hasta la impresionante cantidad de 32 millones de consultas por segundo, lo que lo convierte en un complemento principal para cualquier motor de base de datos importante.

Profundicemos y aprendamos cómo acelerar nuestras operaciones en línea.

Redis: pros y contras

El mayor beneficio de Redis es que es un almacén de datos puramente en memoria , lo que significa que es increíblemente rápido ya que la base de datos se almacena en la RAM, por lo que no se requieren operaciones de E / S de archivos en el disco duro.

Otros beneficios adicionales son su simplicidad, soporte de agrupamiento a través de Redis-cluster, además de su soporte para ocho tipos de datos diferentes que le brindan la flexibilidad necesaria para almacenar y administrar sus datos según sea necesario.

Sin embargo, su mayor caída es también el hecho de que es puramente un almacén de datos en memoria, por lo que tiene limitaciones de tamaño. Depende de la infraestructura de su servidor, pero por el bien de este artículo y la simplicidad, su base de datos típica de Redis solo tendrá un máximo de 2-4 GB de datos.

Esto significa que Redis se utiliza para complementar los motores de base de datos de uso popular, como mySQL, PostgreSQL y MongoDB, y no pretende ser un reemplazo. Los usos principales de Redis incluyen un caché, datos temporales / recientes que caducarán en un corto período de tiempo o pequeños datos a los que se accede con frecuencia.

Cómo instalar Redis

Suponiendo que está ejecutando Ubuntu o cualquier distribución de Linux que contenga el comando apt-get , para instalar Redis simplemente ejecute el siguiente comando en la terminal:

sudo apt-get install redis-server

A continuación, verifique que Redis se haya instalado correctamente. Dentro de la terminal, ejecute el comando:

redis-cli --version

Esto debería imprimir la versión de Redis que está ejecutando y, asumiendo que sea así, ejecute el siguiente comando para conectarse a Redis:

redis-cli

Esto le dará un mensaje de Redis no estándar dentro de la terminal, que se parece a lo siguiente:

127.0.0.1:6379>

Comandos de cadena

Cada entrada en Redis se identifica mediante una clave, que puede ser cualquier cadena que no sea un espacio en blanco que desee. Las cadenas solo contienen un valor único y, por ejemplo, ejecute los siguientes comandos en el indicador de Redis para establecer un valor en un par de claves.

127.0.0.1:6379> set full_name "John Doe" 127.0.0.1:6379> set units 5

Ahora puede enumerar todas las claves que se encuentran actualmente en la base de datos de Redis con el comando keys.

127.0.0.1:6379> keys *

Esto dará como resultado que se muestren las dos claves que configuró anteriormente, full_name  y unidades . Puede ver el valor de estas claves con el comando get.

127.0.0.1:6379> get full_name "John Doe" 127.0.0.1:6379> get units 5

La eliminación de claves se puede hacer fácilmente con el comando del.

127.0.0.1:6379> del full_name

También es posible incrementar rápidamente un número entero con el comando hincrby . Lo siguiente incrementará la tecla "unidades" de 5 a 7.

127.0.0.1:6379> incrby units 2

Comandos de lista

Las listas en Redis son matrices unidimensionales con un orden específico y permiten elementos duplicados en diferentes posiciones de la lista. Los elementos se pueden agregar a la izquierda o derecha de una lista con los comandos lpush y rpush .

127.0.0.1:6379> lpush colors blue 127.0.0.1:6379> rpush colors red yellow green

Como puede ver en el ejemplo anterior, puede enviar varios elementos a una lista con un solo comando. Ahora podemos ver todos los elementos de la lista usando el comando lrange .

127.0.0.1:6379> lrange colors 0 -1

Hay dos números enteros al final del comando, el primero que define la posición dentro de la lista en la que comenzar, y el segundo es el número de elementos a devolver con -1 que significa todos los elementos. El resultado del comando anterior será azul, rojo, amarillo, verde .

También puede eliminar elementos de cualquier extremo de una lista utilizando los comandos lpop y rpop .

127.0.0.1:6379> lpop colors blue 127.0.0.1:6379> rpop colors green

También puede obtener el número de elementos en una lista con el comando llen .

127.0.0.1:6379> llen colors (integer) 2

Por último, puede eliminar un elemento de una lista mediante el comando lrem .

127.0.0.1:6379> lrem colors 1 green (integer) 1

El comando lrem comienza con el nombre de la lista, seguido del número de apariciones a eliminar y el nombre del elemento a eliminar. Devolverá el número de ocurrencias encontradas y eliminadas de la lista.

Comandos hash

Uno de los tipos de datos más populares en Redis son los hash, que le permiten almacenar múltiples pares clave-valor dentro de una sola entrada. No es necesario que la clave exista ya, y usted define pares clave-valor en cualquier momento con el comando hset .

127.0.0.1:6379> hset user:581 full_name "Jane Doe" 127.0.0.1:6379> hset user:581 points 500

También puede definir varios pares clave-valor de un hash dentro de un solo comando mediante el comando hmset .

127.0.0.1:6379> hmset user:581 email [email protected] gender F

El hash identificado por el usuario clave : 581 ahora tienen un total de cuatro pares clave-valor, todos los cuales se pueden recuperar fácilmente con el comando hgetall .

127.0.0.1:6379> hgetall user:581 1) "full_name" 2) "Jane Doe" 3) "points" 4) "500" 5) "email" 6) "[email protected]" 7) "gender" 8) "F"

También puede obtener el valor de un solo par clave-valor dentro de un hash mediante el comando get .

127.0.0.1:6379> hget user:581 email "[email protected]"

Para cualquier número entero dentro del hash, puede incrementarlo en una cantidad específica con el comando de código hincrby .

127.0.0.1:6379> hincrby user:581 points 20 (integer) 520

El valor de la clave de puntos dentro del hash ahora se ha incrementado de 20 a 520. Un solo par clave-valor dentro de un hash se puede eliminar con el comando hdel .

127.0.0.1:6379> hdel user:581 gender

Alternativamente, también puede eliminar un hash por completo, incluidos todos los pares clave-valor, utilizando el comando del .

127.0.0.1:6379> del user:581

Caducar las claves de Redis

Otra característica excelente de Redis es la capacidad de expirar automáticamente las claves después de un número definido de segundos usando el comando expirar . Tenga en cuenta que solo puede caducar las claves completas y no los elementos singulares dentro de una lista o hash. Por ejemplo:

127.0.0.1:6379> expire full_name 10

Esto establecerá un tiempo de vencimiento de 10 segundos en la clave full_name que creó en la sección de cadenas. Después de ejecutar el comando anterior, espere 10 segundos y luego intente recuperar el valor de la clave nuevamente.

127.0.0.1:6379> get full_name (nil)

Como se esperaba, la clave ahora ha expirado, por lo que obtenemos un valor nulo como resultado.

Conéctese a Redis con PHP

Ahora que ha aprendido los conceptos básicos de cómo almacenar y recuperar datos con Redis, es hora de conectarlos a su software. Todos los lenguajes de programación tienen módulos / extensiones para Redis, pero para este ejemplo, usaremos PHP.

Primero debe instalar la extensión PHP-Redis ya que no está instalada de forma predeterminada. Dentro de la terminal, ejecute el comando.

sudo apt-get install php-redis

Una vez instalado, asegúrese de reiniciar PHP-fpm para que la extensión se cargue correctamente. Aquí hay un código PHP que se conecta e interactúa con Redis.

<> // Connect to redis $conn = new redis(); try { $conn->connect('127.0.0.1', 6379, 5); } catch (RedisException $e) { die("Unable to connect to redis"); } // Set string $conn->set('country', 'Canada'); // Get string $value = $conn->get('country'); echo "Country is: $value "; // Define a profile $profile = [ 'username' => 'mike', 'full_name' => 'Mike Smith', 'email' => '[email protected]', 'country' => 'Australia' ]; // Create a hash $conn->hmset('user:188', $profile); // Get all values of the profile hash $values = $conn->hgetall('user:188'); print_r($values); // Get only the e-mail address $email = $conn->hget('user:188', 'email'); echo "E-mail is: $email "; // Expire the hash in 15 seconds $conn->expire('user:188', 15);

El código de ejemplo anterior debería ser bastante sencillo. Primero se conecta a Redis con un tiempo de espera de 5 segundos, luego procede a configurar y obtener una cadena y un hash. Todos los comandos de Redis se pueden ejecutar a través de OOP llamándolos directamente desde el objeto de Redis como se muestra arriba.

¡Estás en camino!

Felicitaciones, ha aprendido los conceptos básicos de cómo almacenar y recuperar datos a una velocidad increíble a través del motor de almacenamiento de Redis, incluido cómo conectarse e interactuar con Redis usando PHP.

Tenga en cuenta que este artículo solo cubre los conceptos básicos, y la página Tipos de datos de Redis de la documentación es un excelente lugar para continuar explorando Redis y todas sus funciones.


Cómo copiar y pegar en Chromebook

Cómo copiar y pegar en Chromebook

Lo primero que podría preguntarse al cambiar a un Chromebook es cómo hacer las cosas básicas, el tipo de cosas que tenía en la palma de su mano en su sistema operativo anterior. Copiar y pegar es una de esas funciones fundamentales que debe utilizar en un momento u otro.

Cómo realizar una prueba de mecanografía en Linux con tt

Cómo realizar una prueba de mecanografía en Linux con tt

En la era moderna de la tecnología, mecanografiar se ha convertido en una de las actividades más comunes para muchas profesiones. Aprender a escribir más rápido con precisión puede ayudarlo a hacer más cosas en la misma cantidad de tiempo.

¿Wi-Fi no funciona en Ubuntu? He aquí cómo solucionarlo

¿Wi-Fi no funciona en Ubuntu? He aquí cómo solucionarlo

Ubuntu es popular por su robustez y relativamente menos errores. Pero no está exento de problemas, seguro. Uno de esos problemas es con su controlador de Wi-Fi. Puede encender su sistema solo para descubrir que su Wi-Fi no funciona.

Cómo crear y escanear códigos QR en Chromebook

Cómo crear y escanear códigos QR en Chromebook

Los códigos de respuesta rápida, o códigos QR para abreviar, son códigos de barras avanzados que contienen más información que un código de barras tradicional. Estos códigos son bidimensionales, lo que le permite escanearlos vertical u horizontalmente.

Cómo instalar y eliminar paquetes en Arch Linux

Cómo instalar y eliminar paquetes en Arch Linux

¿Quiere instalar paquetes en Arch Linux pero no sabe cómo? Mucha gente se enfrenta a este problema cuando migra por primera vez de distribuciones basadas en Debian a Arch. Sin embargo, puede administrar fácilmente paquetes en su sistema basado en Arch utilizando administradores de paquetes.

Cómo instalar Spotify en Linux

Cómo instalar Spotify en Linux

Spotify es uno de los mayores servicios de transmisión de música que existen. Tiene clientes nativos para dispositivos móviles (Android e iOS) y de escritorio (Mac y Windows).

9 comandos básicos para comenzar con Linux

9 comandos básicos para comenzar con Linux

Las guías prácticas de Linux a menudo esperan que realice ciertas operaciones en la terminal, lo que puede parecer intimidante al principio. Pero no se preocupe; esta hoja de trucos de comandos de Linux cubrirá el proceso de abrir una terminal y emitir algunos comandos útiles.

Cómo mover archivos de Linux con el comando Mv

Cómo mover archivos de Linux con el comando Mv

Si bien es probable que ya sepa cómo mover un archivo en Linux usando el navegador de archivos GUI, es posible que se pregunte si hay un comando de movimiento en la terminal que le permita mover archivos rápidamente a diferentes directorios. El comando mv es el que desea y es fácil de usar con su sintaxis simple y algunos indicadores de seguridad opcionales.

Las 10 mejores distribuciones de Linux basadas en Debian

Las 10 mejores distribuciones de Linux basadas en Debian

Debian estándar y su popular derivación Ubuntu son excelentes opciones para un sistema Linux, pero si tiene necesidades más especializadas, es posible que desee una alternativa a Debian.

Cómo encontrar y eliminar archivos duplicados en Linux usando fdupes

Cómo encontrar y eliminar archivos duplicados en Linux usando fdupes

Cuando se trabaja con grandes cantidades de medios y documentos, es bastante común acumular varias copias del mismo archivo en su computadora. Inevitablemente, lo que sigue es un espacio de almacenamiento desordenado lleno de archivos redundantes, lo que provoca comprobaciones periódicas de archivos duplicados en su sistema.

¿Cuál es la mejor distribución de Linux para portátiles?

¿Cuál es la mejor distribución de Linux para portátiles?

Una de las mejores cosas de Linux es que hay una distribución para todos, sin importar qué tipo de hardware esté utilizando. Puede sacar una vieja computadora portátil de su ático, desempolvarla, instalar Linux y listo.

Tomar notas en Chromebooks es más fácil con cursiva

Tomar notas en Chromebooks es más fácil con cursiva

Cursive es una aplicación web progresiva (PWA) que Google introdujo con el lanzamiento de HP Chromebook x2 11. Puede usar esta aplicación para tomar notas escritas a mano en su Chromebook equipado con lápiz óptico.

Cómo usar Vim: una guía de los conceptos básicos

Cómo usar Vim: una guía de los conceptos básicos

Vim es el editor de código más potente y versátil disponible para sistemas similares a Unix. Es una extensión del editor Vi desarrollado por Bill Joy. Vim está disponible de forma predeterminada en la mayoría de los sistemas Linux y BSD.

10 mejores distribuciones de Linux para desarrolladores

10 mejores distribuciones de Linux para desarrolladores

Si bien Linux puede no ser el sistema operativo favorito para los usuarios ocasionales, es la opción preferida para la mayoría de desarrolladores y programadores. Linux es un sistema operativo más práctico que se diseñó explícitamente pensando en la programación y los desarrolladores.

Cómo cifrar y descifrar archivos y directorios fácilmente en Linux

Cómo cifrar y descifrar archivos y directorios fácilmente en Linux

¿Alguna vez ha querido cifrar archivos de forma rápida y sencilla en Linux sin tener que instalar y aprender nuevos paquetes de software? Esta es una manera excelente y fácil de cifrar fácilmente archivos o directorios a través de AES256 protegidos con una contraseña, lo que ayuda a mantener sus archivos lejos de miradas indiscretas.

Distros de Linux estable frente a Bleeding-Edge: ¿Cuál debería elegir?

Distros de Linux estable frente a Bleeding-Edge: ¿Cuál debería elegir?

Una de las principales opciones a las que se enfrentan muchos usuarios de Linux al elegir una distribución de Linux es su estabilidad o cuánto cambia el software.

Cómo agregar un usuario de Sudo en Ubuntu

Cómo agregar un usuario de Sudo en Ubuntu

sudo es uno de los comandos más utilizados en los sistemas Linux. Permite a un usuario ejecutar un

Cómo actualizar Firefox desde la terminal en PC con Ubuntu Linux

Cómo actualizar Firefox desde la terminal en PC con Ubuntu Linux

Aprenda a actualizar Firefox desde Terminal en una PC con Ubuntu Linux

Cómo buscar y reemplazar texto en Vim en Linux

Cómo buscar y reemplazar texto en Vim en Linux

vim es uno de los editores de archivos más populares de Linux. Parte de la popularidad se debe al comando

¿Es 2020 el año de la pandemia de malware de Linux?

¿Es 2020 el año de la pandemia de malware de Linux?

Su reputación de seguridad significa que a menudo se piensa que Linux es menos vulnerable a los tipos de amenazas que plagan regularmente los sistemas Microsoft Windows. Gran parte de esa seguridad percibida proviene del número relativamente bajo de sistemas Linux, pero ¿los ciberdelincuentes comienzan a ver el valor de elegir la calidad sobre la cantidad?

Cómo copiar y pegar en Chromebook

Cómo copiar y pegar en Chromebook

Lo primero que podría preguntarse al cambiar a un Chromebook es cómo hacer las cosas básicas, el tipo de cosas que tenía en la palma de su mano en su sistema operativo anterior. Copiar y pegar es una de esas funciones fundamentales que debe utilizar en un momento u otro.

Cómo realizar una prueba de mecanografía en Linux con tt

Cómo realizar una prueba de mecanografía en Linux con tt

En la era moderna de la tecnología, mecanografiar se ha convertido en una de las actividades más comunes para muchas profesiones. Aprender a escribir más rápido con precisión puede ayudarlo a hacer más cosas en la misma cantidad de tiempo.

¿Wi-Fi no funciona en Ubuntu? He aquí cómo solucionarlo

¿Wi-Fi no funciona en Ubuntu? He aquí cómo solucionarlo

Ubuntu es popular por su robustez y relativamente menos errores. Pero no está exento de problemas, seguro. Uno de esos problemas es con su controlador de Wi-Fi. Puede encender su sistema solo para descubrir que su Wi-Fi no funciona.

Cómo crear y escanear códigos QR en Chromebook

Cómo crear y escanear códigos QR en Chromebook

Los códigos de respuesta rápida, o códigos QR para abreviar, son códigos de barras avanzados que contienen más información que un código de barras tradicional. Estos códigos son bidimensionales, lo que le permite escanearlos vertical u horizontalmente.

Cómo instalar y eliminar paquetes en Arch Linux

Cómo instalar y eliminar paquetes en Arch Linux

¿Quiere instalar paquetes en Arch Linux pero no sabe cómo? Mucha gente se enfrenta a este problema cuando migra por primera vez de distribuciones basadas en Debian a Arch. Sin embargo, puede administrar fácilmente paquetes en su sistema basado en Arch utilizando administradores de paquetes.

El mejor editor de video gratuito para Ubuntu en 2020

El mejor editor de video gratuito para Ubuntu en 2020

Salvo toda la pelusa, aquí hay una lista de los mejores editores de video gratuitos para Ubuntu que puede usar para crear videos impresionantes.

Cómo instalar Spotify en Linux

Cómo instalar Spotify en Linux

Spotify es uno de los mayores servicios de transmisión de música que existen. Tiene clientes nativos para dispositivos móviles (Android e iOS) y de escritorio (Mac y Windows).

Los 15 mejores temas para Ubuntu 20.04 en 2020

Los 15 mejores temas para Ubuntu 20.04 en 2020

Una gran cantidad de nuevos temas actualizados están listos para instalarse en el nuevo escritorio GNOME de Ubuntu 20.04. Aquí hay una lista de los mejores temas de ubuntu en 2020

9 comandos básicos para comenzar con Linux

9 comandos básicos para comenzar con Linux

Las guías prácticas de Linux a menudo esperan que realice ciertas operaciones en la terminal, lo que puede parecer intimidante al principio. Pero no se preocupe; esta hoja de trucos de comandos de Linux cubrirá el proceso de abrir una terminal y emitir algunos comandos útiles.

Cómo mover archivos de Linux con el comando Mv

Cómo mover archivos de Linux con el comando Mv

Si bien es probable que ya sepa cómo mover un archivo en Linux usando el navegador de archivos GUI, es posible que se pregunte si hay un comando de movimiento en la terminal que le permita mover archivos rápidamente a diferentes directorios. El comando mv es el que desea y es fácil de usar con su sintaxis simple y algunos indicadores de seguridad opcionales.