Redis

por | Jun 28, 2024 | No Relacionales | 0 Comentarios

Redis es una base de datos NoSQL (no relacional), de uso gratuito y de código abierto que es usada principalmente para el almacenamiento de información en memoria caché y en la memoria principal. Redis funciona con una alta velocidad de gestión y acceso a datos con una mayor escalabilidad que otras bases de datos. Esto hace que sea muy usada en aplicaciones web y en servicios de telefonía móvil.

El nombre de Redis proviene de las iniciales de “Remote Dictionary Server” (servidor de diccionario remoto), es decir, un servidor apto como memoria rápida para datos.

Al trabajar como “sistema de gestión de base de datos (SGBD”), Redis funciona como una base de datos en memoria y de clave – valor, esto se explica a continuación:

  • Base de datos en memoria: En este tipo de bases de datos , el Sistema Gestor de Bases de Datos guarda todos los datos en la memoria principal, esto permite una respuesta rápida con grandes cantidades de datos.
  • Base de datos de clave – valor: Por poseer una estructura sencilla, este tipo de bases de datos ofrecen un alto rendimiento y pueden escalar con facilidad. Para cada entrada, el sistema crea una clave mediante la que se puede volver a solicitar la información con la que se está trabajando.

Cómo Funciona Redis:

En un servidor Redis, los datos no se guardan en el disco duro, sino en la memoria principal, con esto se logra que Redis funcione como “memoria caché” y también como “unidad de memoria principal”, esto es independiente de si los datos permanecen en la “base” por poco o mucho tiempo.

A cada entrada de la base de datos se le asigna una clave que permite localizar los datos de nuevo y de forma fácil. Con esto, las entradas no requieren estar relacionadas entre sí y tampoco consultarse en varias tablas diferentes, se puede acceder a la información de manera directa.

Al depositar la información en memoria, se corre el riesgo de perder todos los datos si se da un fallo en el servidor, pero para evitar que esto ocurra, Redis “hace regularmente un duplicado de todos los datos en un disco duro secundario”, o “guarda 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 cadenas simples de caracteres. Las claves también se realizan como “strings”.

Características de Redis:

  • Redis almacena los datos en memoria principal, esto permite un acceso muy rápido a ellos. Por este motivo, es una excelente opción para cuando la velocidad es muy necesaria como es el caso de la caché, contadores, sesiones de usuarios, colas de mensajes, etc.
  • Redis permite utilizar muchos tipos de datos entre los que podemos mencionar: cadenas, listas, conjuntos, conjuntos ordenados, hash y bitmaps. Todos estos tipos de datos ayudan a los desarrolladores para una variedad de casos de uso diferentes.
  • La persistencia es opcional. A pesar de que Redis se basa en el uso de la memoria principal, también permite persistir los datos en disco para su posterior recuperación en caso de reinicio del servidor o que se de algún fallo.
  • Las operaciones son atómicas. Ejecuta los comandos de forma atómica, esto significa que una operación se realiza totalmente o no se realiza para nada. Con esto se protege los datos en situaciones en las que hay alta concurrencia.
  • Tiene replicación y una alta disponibilidad. Con Redis se puede realizar la replicación maestro – esclavo con el fin tener copias de seguridad y hacer mejoras en la disponibilidad de los datos.

Ventajas:

  • Siempre es una buena opción si lo que se quiere es obtener datos rápidamente. Con la replicación por defecto de los datos, la velocidad de lectura aumenta y los datos pueden solicitarse desde diferentes lugares.
  • Es muy escalable, se puede mejorar el manejo de los datos.
  • Si el servidor no tuviera memoria suficiente, Redis dispone de una gestión integrada de memoria virtual que envía los datos al disco duro.
  • Redis está escrito en C, pero se cuenta con clientes para prácticamente cualquier lenguaje de programación.

Desventajas:

  • Redis no es la mejor opción si se necesita trabajar con conjuntos de datos complejos los cuales requieren opciones de búsqueda complejas.
  • Al ser una base de datos de tipo clave – valor, los datos en un principio solo pueden solicitarse con la clave que les corresponde.
  • Redis, al igual que otras bases de datos en memoria, necesita muchísimo espacio en la memoria principal, esto incrementa los costos por la compra de memoria RAM.
  • Otra desventaja es que se debe disponer de más espacio de almacenamiento que el que ocupan los datos en sí.

Redis es un sistema de código abierto, hay muchos colaboradores que trabajan para ampliar este sistema. Los módulos o ampliaciones incrementan la cantidad de funciones de la base de datos aunque esta se caracteriza por ser bastante sencilla.

Redis es la base de datos elegida por empresas que necesitan una alta velocidad, alta persistencia y alto rendimiento en el acceso a datos. Ejemplos de estas empresas son: Twitter, GitHub y Craiglist. A esto hay que agregar es que Redis es una de las bases de datos más heterogéneas, y está disponible para lenguajes como C++, C#, Python o Ruby. Algunas de las herramientas más populares de Redis son CLI, Redis Desktop Manager y RedisInsight.

Share This