system onlinepath: /guias/bases-de-datos/bases-de-datos-en-memoria-y-cache-con-redis/mode: knowledge_baselocal:
Datos y bases de datos · Nivel intermedio

Bases de datos en memoria y caché con Redis

No todos los datos necesitan la misma base de datos. Redis y las bases en memoria guardan los datos en la RAM para responder en microsegundos, y son la clave del rendimiento de casi cualquier sistema rápido.

14 min de lectura▣ Actualizada el ◇ Por Underc0de
Respuesta rápida

Una base de datos en memoria, como Redis, guarda los datos en la memoria RAM del servidor en lugar de en el disco. Eso la hace extraordinariamente rápida: leer de la RAM es órdenes de magnitud más veloz que leer de un disco, así que responde en microsegundos. Redis es del tipo clave-valor (guardás un valor bajo una clave y lo recuperás por esa clave, como un diccionario gigante), y por eso también es una base de datos no relacional. Su uso estrella es la caché: una capa rápida que guarda copias de los datos o resultados que se piden a menudo, para no tener que recalcularlos ni ir a buscarlos a la base de datos principal cada vez. El patrón: cuando llega una petición, primero se mira la caché; si el dato está («acierto»), se devuelve al instante; si no está («fallo»), se va a la base de datos principal, se devuelve y se guarda en la caché para la próxima. Así la base de datos principal se alivia enormemente. El contrapunto, y la regla que nunca hay que olvidar: la RAM es volátil: si el servidor se reinicia o se corta la luz, lo que solo estaba en memoria se pierde. Por eso la caché guarda datos que se pueden regenerar, y la fuente de verdad sigue siendo la base de datos persistente.

Ver índice de contenidos
  1. 01Qué es en memoria
  2. 02La caché
  3. 03Rápida pero volátil
  4. 04Errores frecuentes
  5. 05Preguntas frecuentes
  6. 06Fuentes

Qué es una base de datos en memoria

Las bases de datos tradicionales guardan los datos en disco, porque el disco es persistente (conserva los datos aunque se apague la máquina) y grande. Pero el disco es lento comparado con la memoria RAM. Una base de datos en memoria invierte la prioridad: guarda los datos en la RAM, sacrificando persistencia a cambio de una velocidad enorme.

Redis: clave-valor en memoria

Redis es la base de datos en memoria más popular. Es de tipo clave-valor: funciona como un diccionario gigante en el que guardás un valor asociado a una clave y lo recuperás dando esa clave, todo casi instantáneamente. Esa simplicidad, combinada con la velocidad de la RAM, la hace ideal para datos a los que se accede muchísimo y que necesitan responder ya. Es, por su modelo, una base de datos no relacional.

La caché

Ilustración del patrón de caché usando una base de datos en memoria como Redis para acelerar las respuestas y aliviar a la base de datos principal. En el centro se representa el flujo de una petición. Cuando llega una petición que necesita un dato, la aplicación consulta primero la caché en memoria, que es una capa rápida situada delante de la base de datos principal. Se muestran dos caminos posibles. El primer camino, etiquetado como acierto de caché, ocurre cuando el dato solicitado ya está guardado en la caché: en ese caso se devuelve directamente desde la memoria de forma casi instantánea, en microsegundos, sin necesidad de molestar a la base de datos principal. El segundo camino, etiquetado como fallo de caché, ocurre cuando el dato no está en la caché: en ese caso la aplicación acude a la base de datos principal, que guarda los datos en disco de forma persistente pero más lenta, recupera de allí el dato, lo devuelve a quien lo pidió, y además lo guarda en la caché para que la próxima vez que se solicite ya esté disponible como un acierto. El diagrama resalta que, gracias a este patrón, los datos que se piden con frecuencia se sirven la mayoría de las veces desde la caché rapidísima, de modo que la base de datos principal recibe muchísimas menos consultas y queda aliviada, mejorando el rendimiento general del sistema. A un lado se explica por qué la memoria es tan rápida: leer de la memoria RAM es órdenes de magnitud más veloz que leer del disco, por lo que una base de datos en memoria como Redis responde en microsegundos. En la parte inferior se destaca la contrapartida fundamental, la volatilidad: la memoria RAM es volátil, lo que significa que si el servidor se reinicia o se corta la corriente, todo lo que estuviera únicamente en memoria se pierde. Por eso la caché se usa para guardar datos que se pueden regenerar volviendo a consultarlos o recalcularlos, y nunca como único lugar donde vive un dato importante, ya que la fuente de verdad debe seguir siendo la base de datos persistente en disco. Estilo oscuro de base de datos, con la caché en memoria delante y la base de datos principal en disco detrás, y los dos caminos de acierto y fallo de caché representados con flechas.
El patrón de caché: la petición mira primero la caché en memoria. Si el dato está (acierto), se devuelve al instante; si no (fallo), se va a la base de datos principal y se guarda en caché para la próxima.

El uso más extendido de Redis es como caché: una capa rápida que se pone delante de la base de datos principal para guardar copias de lo que se pide a menudo. El patrón, llamado cache-aside, es sencillo:

  1. Llega una petición que necesita un dato.
  2. Se mira primero la caché. Si el dato está («acierto»), se devuelve al instante desde memoria, sin tocar la base de datos principal.
  3. Si no está («fallo»), se va a la base de datos principal, se devuelve el dato y se guarda en la caché para la próxima vez.

El efecto es enorme: como muchas peticiones piden lo mismo (la página de inicio, un producto popular, un perfil muy visitado), la mayoría se resuelven desde la caché rapidísima, y la base de datos principal recibe muchísimas menos consultas. Es una de las técnicas de rendimiento más efectivas que existen.

Rápida pero volátil

La velocidad de la RAM tiene una contrapartida que nunca hay que olvidar: la memoria es volátil. Si el servidor se reinicia, se cuelga o se corta la luz, todo lo que solo estaba en memoria desaparece. Esto define para qué sirve y para qué no.

!
La caché guarda lo que se puede regenerar

Por eso una caché guarda datos reproducibles: si se pierden, se vuelven a calcular o a leer de la base de datos principal, que sigue siendo la fuente de verdad persistente. Nunca se usa una caché como el único lugar donde vive un dato importante —un pedido, un pago—, porque perderla sería perderlo. Redis puede configurarse para persistir en disco y hay usos donde actúa como base de datos principal, pero el patrón clásico de caché asume que su contenido es prescindible: acelera, no custodia.

La regla mental: datos importantes y permanentes → base de datos persistente en disco; datos que se piden mucho y se pueden regenerar → caché en memoria. Cada uno en su sitio, aprovechando lo mejor de cada tecnología.

Errores frecuentes

  • Usar la caché como única fuente de datos importantes. Es volátil; los datos que no pueden perderse van en la base de datos persistente.
  • No invalidar la caché al cambiar el dato. Si el dato original cambia y la caché no se actualiza, se sirven datos viejos.
  • Cachear todo indiscriminadamente. La caché es finita; cachear lo que casi no se pide desperdicia memoria.
  • Olvidar poner caducidad a las entradas. Sin expiración, la caché se llena y sirve datos obsoletos.
  • Confundir caché con base de datos. La caché acelera; la base de datos persistente custodia.
  • No dimensionar la memoria. Si la caché no cabe en RAM, empieza a expulsar entradas y pierde eficacia.
  • Creer que Redis solo sirve de caché. Es versátil (colas, contadores, sesiones), aunque la caché es su uso estrella.

Preguntas frecuentes

¿Qué es una base de datos en memoria como Redis?

Una base de datos en memoria es un tipo de base de datos que guarda los datos principalmente en la memoria RAM del servidor, en lugar de almacenarlos en el disco como hacen las bases de datos tradicionales. La diferencia es fundamental para el rendimiento: acceder a la memoria RAM es órdenes de magnitud más rápido que acceder al disco, de modo que una base de datos en memoria puede leer y escribir datos en microsegundos, ofreciendo una velocidad extraordinaria. Redis es la base de datos en memoria más popular y conocida. Funciona bajo un modelo de clave-valor, lo que significa que se comporta esencialmente como un diccionario gigante: se guarda un valor asociado a una clave, y luego se recupera ese valor proporcionando la clave correspondiente, todo ello de forma casi instantánea. Esta simplicidad del modelo, combinada con la velocidad de la memoria, hace que Redis sea ideal para datos a los que se accede con muchísima frecuencia y que necesitan respuestas inmediatas. Por su modelo de datos, Redis se clasifica dentro de las bases de datos no relacionales, en contraste con las bases de datos relacionales que organizan la información en tablas y se consultan con SQL. El contrapunto de guardar los datos en memoria es la volatilidad: la memoria RAM pierde su contenido cuando el servidor se apaga o se reinicia, a diferencia del disco, que es persistente. Por eso las bases de datos en memoria como Redis se usan típicamente para datos que se pueden regenerar o que no son la fuente de verdad definitiva, siendo su aplicación más habitual la de servir como caché para acelerar los sistemas.

¿Qué es una caché y cómo funciona?

Una caché es una capa de almacenamiento rápida que se sitúa delante de una fuente de datos más lenta, como la base de datos principal, y que guarda copias de los datos o resultados que se piden con frecuencia, con el objetivo de servirlos rápidamente sin tener que ir a buscarlos o recalcularlos cada vez. El patrón de funcionamiento más común, conocido como cache-aside, sigue una lógica sencilla. Cuando llega una petición que necesita un dato, la aplicación consulta primero la caché. Si el dato solicitado ya está en la caché, situación que se denomina acierto de caché, se devuelve directamente desde ella de forma casi instantánea, sin molestar a la base de datos principal. Si el dato no está en la caché, situación que se denomina fallo de caché, la aplicación acude entonces a la base de datos principal, recupera de allí el dato, lo devuelve a quien lo solicitó, y además lo guarda en la caché para que la próxima vez que se pida ya esté disponible como un acierto. El efecto de este mecanismo es muy potente porque, en la mayoría de los sistemas, muchas peticiones piden repetidamente los mismos datos populares, como la página principal, un producto muy visitado o un perfil consultado a menudo, de modo que una vez que esos datos están en la caché, la gran mayoría de las peticiones se resuelven desde la capa rápida y la base de datos principal recibe muchísimas menos consultas, quedando notablemente aliviada. La caché es, por tanto, una de las técnicas de mejora del rendimiento más efectivas y utilizadas, y es el uso estrella de las bases de datos en memoria como Redis.

¿Por qué la memoria es tan rápida pero volátil?

La memoria RAM es tan rápida y a la vez volátil por su propia naturaleza física y por el papel que cumple en un ordenador, en contraste con el almacenamiento en disco. La memoria RAM es el espacio de trabajo activo del sistema, diseñado para que el procesador pueda acceder a los datos que está utilizando en cada momento con la máxima velocidad posible, y por eso su acceso es órdenes de magnitud más rápido que el del disco, que es un almacenamiento diseñado para conservar grandes cantidades de datos de forma duradera pero con tiempos de acceso mucho mayores. Sin embargo, esa velocidad de la memoria tiene como contrapartida que es volátil, lo que significa que necesita alimentación eléctrica constante para mantener su contenido, y en cuanto deja de recibirla, ya sea porque el servidor se apaga, se reinicia o sufre un corte de corriente, todo lo que estaba almacenado únicamente en ella se pierde de forma irrecuperable. El disco, en cambio, es persistente: conserva los datos aunque se corte la energía, motivo por el cual las bases de datos tradicionales lo usan para custodiar la información importante. Esta dualidad entre velocidad y volatilidad es lo que determina para qué se usa cada tipo de almacenamiento. Los datos importantes, permanentes y que constituyen la fuente de verdad se guardan en disco mediante una base de datos persistente, porque no pueden permitirse perderse. Los datos que se piden con mucha frecuencia y que se pueden regenerar volviendo a consultarlos o recalcularlos se colocan en memoria mediante una caché, porque lo que se busca ahí es velocidad y la pérdida ocasional de su contenido no es grave, ya que se puede reconstruir. Comprender esta relación entre velocidad y volatilidad es clave para usar cada tecnología en su lugar adecuado.

¿Puede la caché servir datos desactualizados?

Sí, uno de los desafíos clásicos y más importantes al usar una caché es precisamente el riesgo de servir datos desactualizados, un problema conocido como invalidación de caché, que es célebre por su dificultad. El problema surge de la propia esencia de la caché: como guarda copias de los datos para servirlos rápidamente, cuando el dato original cambia en la base de datos principal, la copia que hay en la caché queda obsoleta, y si no se hace nada al respecto, la aplicación seguirá sirviendo la versión antigua desde la caché en lugar de la versión actualizada, provocando incoherencias visibles para el usuario. Existen varias estrategias para manejar esto y evitar servir datos viejos. Una es invalidar o actualizar explícitamente la entrada de la caché cada vez que el dato correspondiente cambia en la base de datos principal, de modo que la próxima petición produzca un fallo de caché y recupere la versión fresca. Otra estrategia muy común es asignar a cada entrada de la caché un tiempo de caducidad o expiración, de manera que tras un cierto periodo la entrada se considere vencida y se vuelva a cargar desde la fuente, lo que garantiza que los datos nunca estén más desactualizados que ese intervalo, aceptando un pequeño margen de desfase a cambio de la simplicidad. La elección de la estrategia depende de cuánta desactualización se puede tolerar para cada tipo de dato: para datos que cambian poco o donde un ligero retraso no importa, la expiración por tiempo suele bastar, mientras que para datos donde la coherencia inmediata es crítica hay que invalidar de forma explícita al cambiar. Gestionar bien la invalidación de la caché es una de las partes más delicadas del uso de cachés, y descuidarla es una de las causas más frecuentes de errores sutiles y confusos en las aplicaciones que las emplean.

¿Cuándo debo usar una caché y cuándo no?

La decisión de usar una caché depende principalmente del patrón de acceso a los datos y de la tolerancia a la desactualización, y aunque la caché es una herramienta muy potente, no siempre aporta beneficio y a veces añade complejidad innecesaria. Conviene usar una caché cuando existen datos que se piden con mucha frecuencia y cuya obtención desde la fuente original es relativamente costosa o lenta, ya sea porque implica consultas pesadas a la base de datos, cálculos complejos o accesos a servicios externos. En esos casos, guardar el resultado en una caché rápida permite servir la gran mayoría de las peticiones sin repetir ese trabajo costoso, aliviando enormemente la base de datos principal y mejorando los tiempos de respuesta; ejemplos típicos son las páginas o productos más populares, los datos de sesión, los resultados de cálculos frecuentes o cualquier información muy consultada que no cambia a cada instante. En cambio, la caché aporta poco o nada, y puede ser contraproducente, cuando los datos se piden pocas veces, ya que cachear algo que casi no se solicita desperdicia memoria sin ahorrar trabajo real, o cuando los datos cambian constantemente y deben reflejarse siempre actualizados de inmediato, porque en ese caso la caché se invalidaría continuamente y la gestión de la coherencia se volvería complicada y con poco beneficio. También hay que tener presente que introducir una caché añade complejidad al sistema, principalmente por el problema de la invalidación y por tener que gestionar una pieza más de infraestructura, de modo que solo merece la pena cuando el beneficio de rendimiento lo justifica. La regla práctica es cachear los datos que son a la vez muy solicitados, costosos de obtener y razonablemente estables o tolerantes a un ligero desfase, y no caer en la tentación de cachearlo todo indiscriminadamente.

¿Redis solo sirve como caché?

No, aunque la caché es sin duda el uso más popular y conocido de Redis, se trata de una herramienta mucho más versátil que puede desempeñar varios papeles distintos gracias a su velocidad y a las estructuras de datos que ofrece más allá del simple par clave-valor. Además de servir como caché, Redis se usa habitualmente para gestionar sesiones de usuario en aplicaciones web, aprovechando su rapidez para almacenar y recuperar el estado de la sesión de cada usuario. También es muy empleado como sistema de colas de mensajes o de tareas, permitiendo que distintas partes de un sistema se comuniquen de forma asíncrona pasándose trabajos pendientes. Sirve asimismo para implementar contadores en tiempo real, marcadores, rankings y clasificaciones, gracias a estructuras especializadas que permiten mantener conjuntos ordenados de forma eficiente. Se utiliza para funciones de publicación y suscripción, en las que unos componentes publican mensajes y otros los reciben en tiempo real, y para diversas tareas que requieren coordinación rápida entre procesos, como limitar la tasa de peticiones. Incluso puede configurarse para persistir sus datos en disco y actuar como base de datos principal en ciertos escenarios donde su modelo y velocidad encajan bien, aunque este uso requiere entender bien las implicaciones de durabilidad. Dicho esto, es cierto que para la mayoría de los proyectos y para quien se acerca por primera vez a Redis, la caché es el caso de uso principal y el más inmediato de aprovechar, y es la puerta de entrada habitual a esta tecnología. Conviene además saber que existen alternativas y derivados en el ecosistema de las bases de datos en memoria, así como otras herramientas de caché, de modo que Redis, siendo el referente más popular, forma parte de una familia más amplia de soluciones orientadas a la velocidad.

Fuentes

Documentación oficial y material de la comunidad consultados para esta guía. Fecha de consulta: 28 de julio de 2026.

Aportes de la comunidad Underc0de

  1. Underc0de, foro. Sección Bases de datos. Rendimiento y caché.
  2. Underc0de, blog. Blog de la comunidad. Artículos de datos.

Documentación oficial

  1. Redis. Documentación oficial. La base de datos en memoria descrita en la guía.
  2. AWS. What is caching?. Explicación de referencia sobre caché.
  3. Valkey. Valkey. Alternativa libre derivada de Redis.
  4. Memcached. Memcached. Otra caché en memoria muy usada.