Redis

Redis es un almacén que guarda los datos en la memoria del ordenador en lugar del disco, para responder al instante la segunda vez a la misma pregunta cara.

También conocido como caché en memoria almacén clave-valor servidor de caché

Definición

Redis es un almacén pequeño y muy rápido que se coloca junto a tu web y guarda cosas en memoria. La memoria es el espacio de trabajo que usa un ordenador mientras está encendido, y leer de ahí es miles de veces más rápido que leer de un disco. En esa diferencia cabe todo Redis.

Imagina la página de una tienda con mucho público donde cada visitante hace la misma pregunta, que es qué hay en oferta hoy. Sin Redis, la web va a la base de datos principal y calcula la respuesta otra vez para cada uno, cientos de veces por minuto, con el mismo resultado. Con Redis la calcula una vez y entrega la misma copia a los demás durante el minuto siguiente, así que la página llega antes. La base queda entonces libre para el trabajo que solo ella puede hacer.

Hace otras tres cosas muy bien, empezando por recordar quién ha entrado, así no se pide la contraseña en cada clic. Mantiene además una cola de tareas, como el correo de la factura que sale después de la venta y no mientras el cliente espera en el mostrador. Y cuenta sucesos en periodos cortos, que es como un formulario de acceso permite cinco intentos por minuto y rechaza el sexto. Esto último es un trabajo de seguridad barato que corta casi todos los intentos de adivinar contraseñas antes de que empiecen.

Aquí viene la parte que los equipos aprenden a golpes, porque la memoria se vacía en cuanto la máquina se reinicia. Redis puede escribir una copia en disco, pero lo hace cada cierto tiempo, así que un reinicio en el segundo equivocado pierde los últimos segundos. Para una página guardada en caché da igual, para un pedido no, así que nada cuya única copia viva en Redis debería importar. La segunda sorpresa es que de fábrica Redis puede usar toda la memoria que haya, de modo que cuando la máquina se queda sin ella sufre todo lo que corre en ese servidor. Linkysoft fija ese límite el primer día de cada proyecto. Pregunta entonces a tu proveedor cuál es el límite y qué se descarta al llegar a él.

Cuando Linkysoft construye una aplicación web, Redis suele aparecer en la segunda semana y no en la primera. No se puede guardar una respuesta en caché sin saber cuáles se piden más, así que medimos primero y lo añadimos donde apunta la medición. En un sistema de tienda como Storek los ganadores son casi siempre los mismos tres. Son la página de una categoría, las sugerencias bajo el buscador y el número de artículos del carrito en la esquina de cada pantalla.

Preguntas sobre Redis

¿Redis es una base de datos?
Técnicamente sí, pero no es donde vive tu única copia. Piensa en él como una estantería rápida junto al almacén de verdad, con copias de lo que más se pide.
¿Redis pierde datos cuando se reinicia el servidor?
Puede. Todo vive en memoria y se escribe en disco cada cierto tiempo, así que un reinicio en mal momento pierde los últimos segundos. Nunca dejes que un pedido exista solo ahí.
¿Necesito Redis para una web pequeña?
Al principio casi nunca. Una web con unos cientos de visitas al día no espera a la base de datos. Añádelo cuando las páginas se ralenticen con carga, y mide antes.
¿Redis es gratis?
Puedes instalarlo y ejecutarlo tú sin coste. La versión gestionada se alquila y se paga por la memoria que reservas, no por la que realmente usas.
¿Cuál es la diferencia entre Redis y Memcached?
Los dos guardan en memoria. Memcached solo almacena valores simples. Redis maneja además listas, contadores y colas, y puede guardar una copia en disco, por eso lo eligen casi todos los proyectos nuevos.

¿Sigue sin ver cómo se aplica esto a su proyecto?

Cuéntenos qué está construyendo y le responderemos en lenguaje claro.