Articulo de referencia

Redis

{{cite web |url=http://www.eu-startups.com/2011/01/an-interview-with-salvatore-sanfilippo-creator-of-redis-working-out-of-sicily/ |title=An interview with Salvatore Sanfilippo, ...

Redis ( / ˈ r ɛ d ɪ s / ; [ 8 ] [ 9 ] Servidor de diccionario remoto ) [ 8 ] es una base de datos clave-valor en memoria , utilizada como caché distribuida y agente de mensajes , con durabilidad opcional . [ 10 ] Debido a que almacena todos los datos en memoria y debido a su diseño, Redis ofrece lecturas y escrituras de baja latencia , lo que lo hace particularmente adecuado para casos de uso que requieren una caché.

El proyecto fue desarrollado y mantenido por Salvatore Sanfilippo , a partir de 2009. [ 11 ] Desde 2015 hasta 2020, dirigió un equipo central del proyecto patrocinado por Redis Labs . [ 12 ] Salvatore Sanfilippo dejó Redis como mantenedor en 2020. [ 13 ] En 2021, Redis Labs eliminó la palabra «Labs» de su nombre y ahora se la conoce simplemente como «Redis». [ 14 ]

En 2018, algunos módulos de Redis adoptaron una licencia Apache 2.0 modificada con una cláusula Commons . [ 15 ] En 2024, el código principal de Redis cambió de la licencia de código abierto BSD-3 a una licencia dual bajo la Redis Source Available License v2 y la Server Side Public License v1. [ 6 ] El 1 de mayo de 2025, Redis pasó a tener una triple licencia a partir de la versión 8.0, con la GNU Affero General Public License como tercera opción. [ 7 ]

Historia

Salvatore Sanfilippo, el desarrollador original de Redis (foto tomada en 2015).

El nombre Redis significa Servidor de Diccionario Remoto. [ 8 ] El proyecto Redis comenzó cuando Salvatore Sanfilippo (apodado antirez ) intentaba mejorar la escalabilidad de su startup italiana y desarrolló un analizador de registros web en tiempo real . Tras encontrar problemas significativos al escalar algunos tipos de cargas de trabajo utilizando sistemas de bases de datos tradicionales, Sanfilippo comenzó en 2009 a prototipar una primera versión de prueba de concepto de Redis en Tcl . [ 16 ] Posteriormente, Sanfilippo tradujo ese prototipo al lenguaje C e implementó el primer tipo de dato, la lista. Después de unas semanas de usar el proyecto internamente con éxito, Sanfilippo decidió hacerlo de código abierto, anunciando el proyecto en Hacker News . El proyecto comenzó a ganar tracción, particularmente entre la comunidad Ruby, siendo GitHub e Instagram algunas de las primeras empresas en adoptarlo. [ 17 ] [ 18 ]

Sanfilippo fue contratado por VMware en marzo de 2010. [ 19 ] [ 20 ] [ 21 ]

En mayo de 2013, Redis fue patrocinado por Pivotal Software (una empresa derivada de VMware). [ 22 ]

En junio de 2015, el desarrollo pasó a ser patrocinado por Redis Ltd. [ 23 ]

En agosto de 2018, para controlar el uso del software por parte de proveedores de nube gestionada sin una compensación adecuada, Redis Ltd. anunció que cambiaría la licencia de los módulos opcionales de Redis de la Licencia Pública General Affero de GNU (AGPL) a la Licencia Apache , pero sujeta a una cláusula adicional conocida como la " Cláusula Commons " que restringe el uso comercial. Esto hizo que los módulos estuvieran disponibles como código fuente y dejaran de ser software libre . El software principal de Redis permaneció bajo una licencia BSD , y Redis Ltd. se comprometió a mantener estos términos. [ 15 ] [ 24 ] [ 25 ]

En octubre de 2018, se lanzó Redis 5.0, que introdujo Redis Stream, una nueva estructura de datos que permite almacenar múltiples campos y valores de cadena con una secuencia automática basada en el tiempo en una sola clave. [ 26 ]

En febrero de 2019, debido a la confusión sobre los términos de la licencia, los términos de la licencia Apache License with Commons Clause para los módulos de Redis fueron reemplazados por la "Redis Source Available License" (RSAL), que prohíbe explícitamente el uso comercial de los módulos como parte de "una base de datos, un motor de caché, un motor de procesamiento de flujos, un motor de búsqueda, un motor de indexación o un motor de servicio de ML/DL/IA". [ 27 ] [ 28 ] La última revisión de los módulos bajo una licencia libre y de código abierto fue bifurcada por miembros de la comunidad como el proyecto GoodFORM. [ 29 ]

En junio de 2020, Salvatore Sanfilippo renunció como único mantenedor de Redis. Sanfilippo fue sucedido por Yossi Gottlieb y Oran Agra. [ 13 ] [ 30 ]

En marzo de 2024, Redis Ltd. anunció que, a partir de la versión 7.4, el software principal de Redis se relicenciaría bajo la RSAL y la Licencia Pública del Lado del Servidor (SSPL), ambas disponibles en código fuente y no libres. [ 31 ] Posteriormente, la Fundación Linux anunció que bifurcaría la última versión de Redis con licencia BSD como Valkey . [ 32 ] En mayo de 2025, Redis Ltd. anunció que volvería a cambiar la licencia a la AGPL a partir de la versión 8.0, citando que las bifurcaciones habían logrado su objetivo de crear un "campo de juego equitativo" de productos diferenciados, y que Redis había logrado un "crecimiento récord" desde el cambio de licencia. [ 7 ]

Sanfilippo regresó a Redis en diciembre de 2024. [ 33 ]

Diferencias con otros sistemas de bases de datos

Redis es un sistema que funciona como almacén de datos y caché . Los datos se modifican y leen desde la memoria principal del ordenador, a la vez que se almacenan en disco en un formato optimizado para el acceso secuencial, en lugar del acceso aleatorio. Los datos formateados solo se reconstruyen en la memoria cuando el sistema se reinicia.

Redis utiliza un modelo de datos distinto al de los sistemas de gestión de bases de datos relacionales (RDBMS). Los comandos especifican operaciones sobre tipos de datos abstractos, en lugar de consultas que debe ejecutar un motor de base de datos . Los datos se almacenan en estructuras diseñadas para su recuperación directa. No depende de índices secundarios, agregaciones ni otras características comunes en los RDBMS tradicionales. La implementación de Redis utiliza la llamada al sistema `fork` para duplicar el proceso que contiene los datos. Esto permite que el proceso padre continúe atendiendo a los clientes mientras el proceso hijo guarda los datos en memoria en el disco.

Características

Redis asigna claves a tipos de valores. Redis admite varios tipos de datos, incluidos Strings , documentos JSON ( JavaScript Object Notation ), Hashes (una colección de campos, donde cada campo es un par de cadena nombre-valor), [ 34 ] listas , conjuntos , conjuntos de vectores, [ 35 ] y más.

El motor de consultas de Redis permite a los usuarios utilizar Redis como base de datos de documentos , base de datos vectorial , índice secundario y motor de búsqueda. Con el motor de consultas de Redis, los usuarios pueden definir índices para documentos hash y JSON, y utilizar un lenguaje de consulta avanzado para búsqueda vectorial, búsqueda de texto completo, consultas geoespaciales y agregaciones. [ 36 ]

Redis Pub/Sub (abreviatura de publicar/suscribir) es una funcionalidad de mensajería ligera. Los publicadores envían mensajes a un canal y los suscriptores reciben mensajes de ese canal. [ 37 ]

Una transacción de Redis permite la ejecución de un grupo de comandos en un solo paso. Una solicitud enviada por otro cliente nunca será atendida durante la ejecución de una transacción. Esto garantiza que los comandos se ejecuten como una única operación aislada. [ 38 ]

Los usuarios de Redis también pueden cargar y ejecutar scripts Lua en el servidor. [ 39 ]

A partir del 1 de mayo de 2025, para todas las versiones de Redis a partir de la 8.0, todos los tipos de datos están incluidos en el mismo paquete [ 40 ] y disponibles bajo la licencia Redis Source Available License v2. [ 41 ] Anteriormente, algunos tipos de datos estaban separados y, por lo tanto, disponibles bajo diferentes licencias.

Persistencia

Redis normalmente almacena todo el conjunto de datos en memoria. Las versiones hasta la 2.4 podían configurarse para usar lo que denominan memoria virtual [ 42 ], en la que parte del conjunto de datos se almacena en disco, pero esta función está obsoleta. La persistencia en Redis se puede lograr mediante dos métodos diferentes: instantáneas, donde el conjunto de datos se transfiere asincrónicamente de la memoria al disco a intervalos regulares como un volcado binario, utilizando el formato de archivo de volcado RDB de Redis; o registro , donde se agrega un registro de cada operación que modifica el conjunto de datos a un archivo de solo escritura (AOF) en un proceso en segundo plano. Redis puede reescribir el archivo de solo escritura en segundo plano para evitar un crecimiento indefinido del registro. El registro se introdujo en la versión 1.1 y generalmente se considera el enfoque más seguro.

Por defecto, Redis escribe datos en un sistema de archivos al menos cada dos segundos, con opciones más o menos robustas disponibles si es necesario. En caso de un fallo total del sistema con la configuración predeterminada, solo se perderán unos pocos segundos de datos.

Replicación

Redis admite la replicación maestro-réplica . Los datos de cualquier servidor Redis pueden replicarse en cualquier número de réplicas. Una réplica puede ser maestra de otra réplica. Esto permite a Redis implementar un árbol de replicación con una sola raíz. Las réplicas de Redis pueden configurarse para aceptar escrituras, lo que permite inconsistencias intencionales y no intencionales entre instancias. La función de publicación-suscripción está completamente implementada, por lo que un cliente de una réplica puede suscribirse a un canal y recibir un flujo completo de mensajes publicados en el maestro, en cualquier punto del árbol de replicación. La replicación es útil para la escalabilidad de lectura (pero no de escritura) o la redundancia de datos. [ 43 ]

Actuación

Cuando no se requiere durabilidad de los datos, la naturaleza en memoria de Redis le permite tener un buen rendimiento en comparación con los sistemas de bases de datos que escriben cada cambio en el disco antes de considerar una transacción confirmada. [ 8 ] Redis opera como un solo proceso y es de un solo hilo o de doble hilo cuando reescribe el AOF (archivo de solo anexión). [ 44 ] Por lo tanto, una sola instancia de Redis no puede usar la ejecución paralela de tareas como procedimientos almacenados .

Agrupación

Redis introdujo la agrupación en clústeres en abril de 2015 con el lanzamiento de la versión 3.0. [ 45 ] La especificación del clúster implementa un subconjunto de comandos de Redis: todos los comandos de clave única están disponibles, las operaciones de clave múltiple (comandos relacionados con uniones e intersecciones) están restringidas a claves que pertenecen al mismo nodo, y los comandos relacionados con operaciones de selección de bases de datos no están disponibles. [ 46 ] Un clúster de Redis puede escalar hasta 1000 nodos, lograr una seguridad de escritura "aceptable" y continuar las operaciones cuando fallan algunos nodos. [ 47 ] [ 48 ]

Usuarios y casos de uso

Redis ha sido utilizado por Adobe , [ 49 ] Airbnb , [ 50 ] Amazon , [ 51 ] Hulu , [ 52 ] OpenAI , [ 53 ] Salesforce , [ 54 ] Shopify , [ 55 ] Tinder , [ 56 ] Twitter , [ 57 ] [ 58 ] y Yahoo . [ 59 ]

Los casos de uso típicos de Redis son el almacenamiento en caché de sesiones, el almacenamiento en caché de páginas completas, las aplicaciones de colas de mensajes, las tablas de clasificación y el conteo, entre otros. [ 60 ] El paradigma de mensajería de publicación-suscripción permite la comunicación en tiempo real entre servidores.

Amazon Web Services ofrece un servicio Redis administrado llamado ElastiCache para Redis, Google ofrece un servicio Redis administrado llamado Cloud Memorystore, [ 61 ] Microsoft ofrece Azure Cache para Redis en Azure , [ 62 ] y Alibaba ofrece ApsaraDB para Redis en Alibaba Cloud . [ 63 ]

Interfaz de biblioteca

Redis se integra con varias bibliotecas. Por ejemplo, las bibliotecas POCO C++ admiten la integración con Redis a través de su Poco::Redisbiblioteca. [ 64 ]

Véase también

Referencias

  1. 1 2 Bernardi, Stefano (4 de enero de 2011). "Una entrevista con Salvatore Sanfilippo, creador de Redis, que trabaja desde Sicilia" . EU-Startups . Menlo Media.
  2. 1 2 Haber, Itamar (15 de julio de 2015). "Salvatore Sanfilippo: Bienvenido a Redis Labs" . Redis .
  3. "Página 7 de 7 - Redis - Archivo de Google Code - Almacenamiento a largo plazo para el alojamiento de proyectos de Google Code" . code.google.com . Consultado el 22 de marzo de 2024 .
  4. "Versión 8.8.0" . 25 de mayo de 2026. Consultado el 25 de mayo de 2026 .
  5. "Introducción a Redis" . Redis está escrito en ANSI C y funciona en la mayoría de los sistemas POSIX como Linux, *BSD y OS X sin dependencias externas.
  6. 1 2 "LICENSE.txt" . GitHub . 20 de marzo de 2024.
  7. 1 2 3 "Redis apuesta fuerte por el regreso del código abierto" . InfoWorld . Consultado el 1 de mayo de 2025 .
  8. 1 2 3 4 "Preguntas frecuentes: Redis" . Redis.io . Consultado el 12 de febrero de 2022 .
  9. "Grupos de Google" . groups.google.com . Consultado el 25 de febrero de 2022 .
  10. "Redis" . Redis . Consultado el 22 de julio de 2023 .
  11. "Una conversación con Salvatore Sanfilippo, creador de la base de datos de código abierto Redis" . VentureBeat . 2016-06-20 . Consultado el 2021-06-29 .
  12. Kepes, Ben (15 de julio de 2015). "Redis Labs contrata al creador de Redis, Salvatore Sanfilippo" . Network World . Consultado el 30 de agosto de 2015 .
  13. 1 2 Francisco, Thomas Claburn en San. "El maestro de bases de datos Antirez le dice arrivederci a Redis: parece que quiere una vida sin estructura escribiendo código, no una estructurada administrando software" . www.theregister.com . Recuperado el 29 de junio de 2021 .
  14. "La startup de bases de datos Redis Labs cambia su nombre a... simplemente Redis" . SiliconANGLE . 11 de agosto de 2021. Consultado el 11 de agosto de 2021 .
  15. 1 2 Claburn, Thomas. "Redis tiene licencia para matar: el creador de bases de datos de código abierto toma parte del código como propietario" . The Register . Recuperado el 21 de marzo de 2024 .
  16. Sanfilippo, Salvatore (28 de abril de 2017). "Prototipo Tcl de Redis" . GitHub Gist . Recuperado el 8 de octubre de 2018 .
  17. Wanstrath, Chris (3 de noviembre de 2009). "Presentando Resque" . Blog . Consultado el 8 de octubre de 2018 .
  18. Krieger, Mike (31 de octubre de 2011). "Almacenamiento de cientos de millones de pares clave-valor simples en Redis" . Blog de ingeniería de Instagram . Consultado el 8 de octubre de 2018 .
  19. Shapira, Gwen (17 de marzo de 2010). "VMware contrata a un desarrollador clave de Redis, ¿pero por qué?" . Blog . Consultado el 25 de septiembre de 2016 .
  20. Sanfilippo, Salvatore (15 de marzo de 2010). "VMware: el nuevo hogar de Redis" . Blog . Consultado el 25 de septiembre de 2016 .
  21. Collison, Derek (15 de marzo de 2010). "VMware: La consola: VMware contrata a un desarrollador clave para Redis" . Blog de VMware . Archivado del original el 22 de marzo de 2010. Consultado el 25 de septiembre de 2016 .
  22. Sanfilippo, Salvatore. "Patrocinadores de Redis" . Redis.io . Redis . Consultado el 11 de abril de 2019 .
  23. Sanfilippo, Salvatore (15 de julio de 2015). "Gracias Pivotal, hola Redis Labs" . antirez.com . Consultado el 3 de abril de 2019 .
  24. Baer, ​​Tony (16 de octubre de 2018). "Es el turno de MongoDB de cambiar su licencia de código abierto" . ZDNet . Consultado el 1 de agosto de 2019 .
  25. Shoolman, Yiftach (22 de agosto de 2018). "La licencia de Redis es BSD y seguirá siéndolo" . Redis.io . Redis . Consultado el 30 de septiembre de 2024 .
  26. "¡Redis 5.0 ya está aquí!" 22 de octubre de 2018.
  27. Finley, Klint (31 de julio de 2019). "Cuando el software de código abierto viene con algunas trampas" . Wired . ISSN 1059-1028 . Recuperado el 1 de agosto de 2019 . 
  28. Vaughan-Nichols, Steven J. "Redis Labs abandona la cláusula Commons para obtener una nueva licencia" . ZDNet . Consultado el 1 de agosto de 2019 .
  29. Gilbertson, Scott (16 de octubre de 2019). "En 2019, varias empresas de código abierto cambiaron de rumbo: ¿fue la decisión correcta?" . Ars Technica . Consultado el 16 de octubre de 2019 .
  30. "El final de la aventura de Redis -" . antirez.com . Consultado el 10 de noviembre de 2020 .
  31. "Redis endurece sus términos de licencia, sin complacer a nadie" . The Register . Archivado del original el 6 de febrero de 2025. Consultado el 1 de mayo de 2025 .
  32. "La Fundación Linux lanza Valkey como una bifurcación de Redis" . Phoronix . Consultado el 1 de mayo de 2025 .
  33. Clark, Lindsay (10 de abril de 2025). "El regreso del creador de Redis da frutos con el tipo de datos de conjunto vectorial" . The Register . Consultado el 30 de septiembre de 2025 .
  34. "Redis hashes" . Docs . Consultado el 13 de julio de 2025 .
  35. "Conjuntos de vectores de Redis" . Docs . Consultado el 13 de julio de 2025 .
  36. "Motor de consultas de Redis" . Documentación . Consultado el 13 de julio de 2025 .
  37. "Redis Pub/sub" . Docs . Consultado el 13 de julio de 2025 .
  38. "Transacciones" . Docs . Consultado el 13 de julio de 2025 .
  39. "Scripting with Lua" . Documentación . Consultado el 13 de julio de 2025 .
  40. "Redis 8.0" . Docs . Consultado el 13 de julio de 2025 .
  41. Redis. "Licencias" . Redis . Consultado el 13 de julio de 2025 .
  42. "Memoria virtual" . Redis.io . Consultado el 11 de abril de 2019 .
  43. "Archivo de Google Code: almacenamiento a largo plazo para el alojamiento de proyectos de Google Code" . code.google.com .
  44. "Redis en la Raspberry Pi: aventuras en tierras no alineadas - antirez" . antirez.com .
  45. "Notas de la versión de Redis 3.0" . GitHub . Consultado el 10 de marzo de 2017 .
  46. "Especificación de clúster" . Consultado el 10 de marzo de 2017 .
  47. "Especificación de clúster" . Consultado el 10 de marzo de 2017 .
  48. "Tutorial de clúster" . Consultado el 10 de marzo de 2017 .
  49. "AWS re:Invent 2014 | (SDD402) Amazon ElastiCache Deep Dive" . YouTube . 17 de noviembre de 2014. Consultado el 22 de julio de 2023 .
  50. "AWS re:Invent 2018: El viaje de Airbnb desde Redis autogestionado a ElastiCache para Redis (DAT319)" . YouTube . 28 de noviembre de 2018. Consultado el 22 de julio de 2023 .
  51. "Estudio de caso de migración de la base de datos de Amazon GameOn – Amazon Web Services (AWS)" . Amazon Web Services, Inc. Recuperado el 22 de julio de 2023 .
  52. "Estudio de caso de Hulu" . Amazon Web Services, Inc. Recuperado el 22 de julio de 2023 .
  53. "Errores de API elevados" . status.openai.com . 19 de octubre de 2023. Consultado el 28 de octubre de 2023 .
  54. "Uso de Redis Hash en lugar de Set para reducir el tamaño de la caché y los costos operativos" . Ingeniería de Salesforce . 25 de febrero de 2021. Consultado el 30 de septiembre de 2025 .
  55. "Simplify: Renderizado de la tienda en el servidor optimizado para procesamiento por lotes y caché" . Ingeniería de Shopify . 3 de mayo de 2023. Consultado el 30 de septiembre de 2025 .
  56. "Desarrollo de resiliencia a escala en Tinder con Amazon ElastiCache | Blog de bases de datos de AWS" . aws.amazon.com . 30 de enero de 2020. Consultado el 22 de julio de 2023 .
  57. "Escalando Redis en Twitter" . YouTube . 31 de agosto de 2014. Consultado el 22 de julio de 2023 .
  58. "Uso de Redis a escala en Twitter - por Rashmi Ramesh de Twitter - RedisConf17 -" . YouTube . 5 de julio de 2017. Consultado el 22 de julio de 2023 .
  59. "AWS re:Invent 2022 - Cómo Yahoo optimiza los costos de sus cargas de trabajo en memoria con AWS (DAT321)" . YouTube . 2 de diciembre de 2022. Consultado el 22 de julio de 2023 .
  60. "Los 5 casos de uso principales de Redis - ObjectRocket" . ObjectRocket . Rackspace. 7 de noviembre de 2017.
  61. "Memorystore: almacén de datos en memoria" . Google Cloud . Consultado el 3 de febrero de 2023 .
  62. "Azure Redis Cache - Servicio en la nube de caché de Redis - Microsoft Azure" . azure.microsoft.com .
  63. " ApsaraDB para Redis: Un servicio de base de datos clave-valor - Alibaba Cloud" . www.alibabacloud.com
  64. "Espacio de nombres Poco::Redis" . docs.pocoproject.org . Proyecto POCO . Consultado el 18 de octubre de 2025 .

Lecturas adicionales

  • Isabel Drost y Jan Lehnard (29 de octubre de 2009), Eventos: Conferencia NoSQL, Berlín , The H. Diapositivas para la presentación de Redis. Resumen .
  • Billy Newport (IBM): " Evolucionando el modelo de programación clave/valor a un nivel superior ". Conferencia Qcon 2009, San Francisco.
  • A. Mishra: " Instalar y configurar Redis en un servidor Centos/Fedora ".
  • E. Mouzakitis: " Monitoreo del rendimiento de Redis "
  • Sitio web oficial
  • Valkey: Entorno de desarrollo continuo del software Redis original con licencia BSD.