Redis

Redis
Información sobre la plantilla
Redis Logo.png
CreadorSalvatore Sanfilippo
DesarrolladorSalvatore Sanfilippo
Lanzamiento inicial10 de abril de 2009
Última versión estable6.0.6 (info) 20 de julio de 2020 (1 año, 2 meses y 14 días)
IdiomaInglés
LicenciaBSD
Sitio web
Sitio web oficial / Repositorio de código

Redis (Remote Dictionary Server) es un rápido almacén de datos clave-valor en memoria de código abierto. El proyecto se inició cuando Salvatore Sanfilippo, el desarrollador original de Redis, trataba de mejorar la escalabilidad de su empresa emergente italiana. A partir de ahí, desarrolló Redis, que ahora se utiliza como base de datos, caché, agente de mensajes y cola.


Creación

Escrita en ANSI C a principios del año 2009 por Salvatore Sanfilippo. Su nacimiento deriva de la necesidad de mejorar los tiempos de respuesta de un proyecto en el que trabajaba llamado LLOGG. En el año 2012, VMWare contrata a Salvatore y a Pieter Noordhuis para trabajar de lleno en Redis.

Beneficios

Rendimiento

Todos los datos de Redis residen en la memoria, lo que permite un acceso a datos de baja latencia y alto rendimiento. A diferencia de las bases de datos tradicionales, los almacenes de datos en memoria no requieren un viaje al disco duro, lo que reduce la latencia del motor a microsegundos. Debido a esto, el almacén de datos en memoria permite soportar una cantidad mucho mayor de operaciones y ofrecer tiempos de respuesta más rápidos. El resultado es un desempeño increíblemente rápido y operaciones de lectura o escritura promedio que se ejecutan en menos de un milisegundo y una capacidad para procesar millones de operaciones por segundo.

Estructuras de datos flexibles

A diferencia de otros almacenes de datos de clave valor simplistas que ofrecen estructuras de datos limitadas, Redis cuenta con una amplia variedad de estructuras de datos para satisfacer los requisitos de sus aplicaciones. Los tipos de datos de Redis incluyen:

  • Cadenas: datos de texto o binarios de hasta 512 MB de tamaño
  • Listas: una colección de cadenas en el orden en que se agregaron
  • Conjuntos: una colección desordenada de cadenas con la capacidad para intercalarse, unirse y diferenciarse de otros tipos de conjuntos.
  • Conjuntos ordenados: conjuntos ordenados por un valor
  • Hashes: una estructura de datos para almacenar una lista de campos y valores
  • Mapas de bits: un tipo de datos que ofrece operaciones a nivel de bits
  • HyperLogLogs: una estructura de datos probabilísticos para estimar los elementos únicos en un conjunto de datos
  • Secuencias: una cola de mensajes de estructura de datos de registro
  • Geoespacial: mapas de entradas basados en longitud / latitud, "cercanía"

Simplicidad y facilidad de uso

Redis le permite escribir código tradicionalmente complejo con menos líneas y más simples. Con Redis puede escribir menos líneas de código para almacenar, obtener acceso y utilizar datos en sus aplicaciones. La diferencia es que los desarrolladores que usan Redis pueden usar una estructura de comando simple en contraposición a los lenguajes de consulta de bases de datos tradicionales. Por ejemplo, puede usar la estructura de datos hash de Redis para mover datos a un almacén de datos con solo una línea de código. Una tarea de similares características en un almacén de datos sin estructuras de datos hash necesitaría muchas líneas de código para realizar la conversión de un formato a otro. Redis incluye estructuras de datos originales y muchas opciones para trabajar e interactuar con ellos. Los desarrolladores de Redis tienen a su disposición más de cien clientes de código abierto. Entre los lenguajes admitidos se encuentran Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go y muchos otros. Replicación y persistencia

Redis utiliza una arquitectura con servidor principal y réplica y admite la replicación asíncrona en la que los datos se replican en numerosos servidores de réplicas. De este modo, se logra un mejor nivel de rendimiento de lectura (ya que las solicitudes se pueden repartir entre varios servidores) y menores tiempos de recuperación cuando el servidor principal sufre un corte. Por una cuestión de persistencia, Redis admite copias de seguridad puntuales (copia el conjunto de datos Redis en el disco).

Redis no se creó para ser una base de datos duradera y coherente. Si necesita una base de datos duradera y compatible con Redis, considere Amazon MemoryDB para Redis. Debido a que MemoryDB usa un registro transaccional duradero que almacena datos en múltiples zonas de disponibilidad (AZ), puede usarlo como su base de datos principal. MemoryDB está diseñado específicamente para permitir que los desarrolladores utilicen la API de Redis sin preocuparse por administrar una caché, una base de datos o la infraestructura subyacente por separado.

Alto nivel de disponibilidad y escalabilidad

Redis ofrece una arquitectura con servidor principal y réplica en una topología en clústeres o principal con un único nodo. Esto permite crear soluciones con un alto nivel de disponibilidad, lo que ofrece fiabilidad y rendimiento estables. Cuando se necesita ajustar el tamaño de un clúster, se encuentran disponibles diferentes opciones de escalado. Esto permite que el tamaño del clúster se ajuste a sus necesidades.

Código abierto

Redis es un proyecto de código abierto que cuenta con el apoyo de una comunidad activa, incluyendo AWS. No hay limitaciones de proveedores ni tecnología porque Redis está basado en estándares abiertos, admite formatos de datos abiertos y cuenta con una completa base de clientes.

Utilización

Almacenamiento en caché

Redis es una excelente opción para implementar una caché en memoria de alta disponibilidad a fin de reducir la latencia de acceso a los datos, incrementar la capacidad de procesamiento y aliviar la carga de la aplicación y de la base de datos relacional o NoSQL. Redis puede suministrar elementos solicitados frecuentemente con tiempos de respuesta inferiores a un milisegundo, y permite ajustar la escala con facilidad en caso de cargas mayores sin tener que ampliar el costoso backend. El almacenamiento en caché de resultados de consultas en bases de datos, de sesiones persistentes, de páginas web y de objetos de uso frecuente, como imágenes, archivos y metadatos, son ejemplos comunes de tipos de almacenamiento en caché que se pueden realizar con Redis.

Chat, mensajería y colas

Redis admite tareas de publicación y suscripción con correspondencia de patrones y una variedad de estructuras de datos, como listas, conjuntos ordenados y hashes. Eso le permite a Redis respaldar salas de chat de alto rendimiento, streaming de comentarios en tiempo real, actividades en redes sociales e intercomunicaciones entre servidores. La estructura de datos de Listas de Redis facilita la implementación de una cola liviana. Las listas ofrecen operaciones atómicas, así como capacidades de bloqueo, por lo que resultan aptas para una variedad de aplicaciones que requieren un agente de mensajes fiable o una lista circular.

Tablas de clasificación de videojuegos

Redis es una de las opciones favoritas de los desarrolladores de videojuegos que necesitan crear tablas de clasificación con datos generados en tiempo real. Simplemente utilice la estructura de datos de los conjuntos clasificados de Redis, que proporciona singularidad de elementos, mientras que mantiene la lista ordenada por puntaje de usuarios. Crear una lista de clasificación en tiempo real es tan sencillo como actualizar la puntuación de un usuario cada vez que cambia. También puede utilizar los conjuntos clasificados para administrar datos de serie temporal con sellos de tiempo como puntuación.

Almacén de sesiones

Redis, un almacén de datos en memoria con un alto nivel de disponibilidad y persistencia, es una de las opciones favoritas de los desarrolladores de aplicaciones para almacenar y administrar datos de sesiones para aplicaciones a escala de Internet. Redis ofrece la latencia menor a un milisegundo, la escala y la resiliencia necesarias para administrar datos de sesiones, como perfiles de usuarios, credenciales, estados de sesiones y personalización específica para usuarios.

Streaming completo de contenido multimedia

Redis ofrece un almacén de datos en memoria y ágil para respaldar casos de uso de streaming en directo. El almacenamiento de metadatos de Redis se puede utilizar para perfiles de usuarios e historial de visualizaciones, tokens/información de autenticación para millones de usuarios y archivos de manifiestos para permitir que CDN haga streaming de videos a millones de usuarios de aplicaciones móviles y de escritorio en un determinado momento.

Análisis geoespacial

Redis ofrece estructuras de datos en memoria y operadores personalizados para administrar datos geoespaciales a escala y con velocidad. Los comandos como GEOADD, GEODIST, GEORADIUS y GEORADIUSBYMEMBER utilizados para almacenar, procesar y analizar datos geoespaciales en tiempo real facilitan y agilizan las tareas con Redis. Puede usar Redis para agregar características basadas en ubicación geográfica, como tiempo de conducción, distancia recorrida y puntos de interés, a sus aplicaciones.

Machine Learning

Las aplicaciones modernas basadas en datos exigen que el Machine Learning procese rápidamente grandes volúmenes de datos variados y ágiles, y que automatice la toma de decisiones. Para casos de uso como la detección de fraudes en juegos y servicios financieros, las subastas en tiempo real en el sector de la tecnología publicitaria y las coincidencias en aplicaciones de citas y viajes compartidos, la capacidad para procesar datos instantáneamente y tomar decisiones en decenas de milisegundos tiene una importancia fundamental. Redis le proporciona un almacén de datos en memoria para crear, entrenar e implementar rápidamente modelos de Machine Learning.

Análisis en tiempo real

Redis se puede usar con soluciones de streaming, como Apache Kafka y Amazon Kinesis, como almacén de datos en memoria para incorporar, procesar y analizar datos en tiempo real con una latencia menor a un milisegundo. Redis es la opción ideal para casos de uso de análisis en tiempo real, como análisis de datos de redes sociales, focalización de anuncios, personalización e IoT.

Fuentes

  • Amazon Disponible en "aws.amazon.com" Consultado el 4 de octubre del 2021]
  • Wikipedia Disponible en "es.wikipedia.org" Consultado el 4 de octubre del 2021}
  • Redis Disponible en "blog.bi-geek.com" Consultado el 4 de octubre del 2021.