Redis: otro concepto de base de datos

En la mayoría de proyectos informáticos se usan bases de datos relacionales. Ya sea en el diseño de webs o en el desarrollo de software, estas bases estructuradas en tablas dan resultados buenos y estables en la mayoría de casos. Sin embargo ¿son siempre la opción ideal? En los últimos años han ido saliendo al mercado cada vez más tipos nuevos de bases de datos, todos con ventajas muy características. Las llamadas bases de datos NoSQL, como la que ofrece Redis, son muy recomendables para algunos proyectos. ¿Cómo funciona Redis y qué ventajas ofrece este repositorio de datos?

Las bases de datos Redis

El nombre Redis proviene de las iniciales de Remote Dictionary Server (servidor de diccionario remoto), un tipo de servidor apto como memoria rápida para datos. Como sistema de gestión de base de datos (SGBD), Redis ofrece tanto una base de datos en memoria (in-memory database) como de clave-valor (key-value store):

  • Base de datos en memoria: en este tipo de bases de datos, el SGBD guarda todos los datos en la memoria principal, lo cual garantiza una respuesta rápida incluso con grandes conjuntos de datos sin estructurar.
  • Base de datos de clave-valor: gracias a su sencilla estructura, estas bases de datos también ofrecen un alto rendimiento y pueden escalarse fácilmente. Para cada entrada se crea una clave (key) mediante la que se puede volver a solicitar la información en cuestión.

En un servidor Redis, por lo tanto, los datos no se guardan en el disco duro, sino en la memoria principal. Esto permite que Redis funcione como memoria cachéy también comounidad dememoria principal, con independencia de si los datos permanecen en la base por mucho o poco tiempo.

Cada entrada de la base de datos recibe asignada una clave con la que se pueden localizar los datos fácilmente de nuevo. De esta manera, las entradas no necesitan estar relacionadas entre sí ni tampoco consultarse con varias tablas diferentes, sino que la información está disponible de manera directa.

Al depositar información en la memoria, sin embargo, también se corre el riesgo de perder todos los datos si hubiera un fallo del servidor. Para evitar que eso ocurra, Redis puede, o bien hacer regularmente un duplicado de todos los datos en un disco duro secundario, o bien guardar en un archivo de registro todas las órdenes necesarias para llevar a cabo una reconstrucción.

La estructura de datos típica de Redis está formada por las llamadas strings, es decir, cadenas simples de caracteres. Las claves (parte del key-value store) también se han realizado como strings. El sistema, sin embargo, es también compatible con otras estructuras de datos:

  • String: secuencias de un tamaño máximo de 512 MB
  • Hash: entrada con varios campos
  • List: conjunto de strings clasificados por orden de introducción
  • Set: conjunto de strings sin clasificar
  • Sorted set (sets clasificado): conjunto de strings clasificado por el usuario
  • Bitmap: conjunto de operaciones a nivel de bit
  • HyperLogLog: estimación según valores unívocos
  • Stream: lista de strings o pares complejos de key-value

Puesto que Redis es un sistema de código abierto, hay muchos desarrolladores trabajando para ampliar el sistema. Los llamados módulos o ampliaciones aumentan el rango de funciones de la base de datos, que por lo demás es bastante sencilla, y adaptan el software a ámbitos de uso específicos.

Para proteger tu privacidad, el vídeo se cargará tras hacer clic.

Hecho

Redis es de código abierto y cualquiera puede usarlo de forma gratuita. Está patrocinado principalmente por la empresa Redis Labs, que ofrece versiones en la nube, de pago, de este programa.

¿Para qué ámbitos de aplicación es más adecuado?

Un escenario estándar de Redis es el almacenamiento en caché, para lo cual también Twitter utiliza esta base de datos, por ejemplo: la propia timeline en el servicio de mensajería es posible gracias a una caché de Redis. La timeline se compone principalmente de una lista que, gracias a Redis, puede solicitarse fácilmente y ampliarse de forma incremental.

No obstante, Redis también se utiliza para otros fines. Gracias a su velocidad de respuesta, por ejemplo, esta base de datos es perfecta para servicios de mensajería o chat rooms. El sistema puede mostrar las nuevas entradas en tiempo real y actualiza regularmente las listas.

Consejo

Si ya te has convencido de las ventajas de Redis y quieres utilizar esta base de datos para tu proyecto, en nuestro sencillo tutorial de Redis te contamos cómo dar los primeros pasos.

Ventajas y desventajas de Redis

Redis es siempre una buena opción si se trata de obtener datos rápidamente. Gracias a la replicación por defecto de los datos, la velocidad de lectura aumenta aún más y los datos pueden solicitarse desde diferentes instancias. También la escalabilidad es un punto a favor de Redis, tanto la vertical como la horizontal. Si la memoria principal del servidor Redis no fuese suficiente, el software dispone de una gestión integrada de virtual memory que envía los datos al disco duro. Redis en sí está escrito en C, pero existen clientes para prácticamente cualquier lenguaje de programación.

Si lo que necesitas, sin embargo, es trabajar con conjuntos de datos complejos, que a su vez requieren opciones de búsqueda igualmente complejas, Redis no es la mejor opción. Con una base de datos de clave-valor, los datos en principio solo pueden solicitarse con la clave que les corresponde. Además, Redis requiere (al igual que otras bases de datos en memoria) muchísima capacidad en la memoria principal, lo cual puede reflejarse en los costes. A eso habría que añadir que se debería disponer de más espacio de almacenamiento del que ocupen los datos en sí.

En resumen

Siempre que haya que introducir y solicitar datos de manera rápida, Redis es una buena alternativa a las tradicionales bases de datos relacionales. Si la velocidad, en cambio, no es un factor decisivo y se prefiere una base de datos para tareas más complejas, valdría más recurrir a los sistemas tradicionales.


¡No te vayas! ¡Tenemos algo para ti!
Consigue tu dominio .es un año gratis.

Introduce el dominio que deseas en la barra de búsqueda para comprobar su disponibilidad.
12 meses desde 0€/año IVA incl.
después 10 €/año IVA incl.