Ir al contenido principal
短.be

Arquitectura de un acortador de URL

Diseño interno de un servicio de acortamiento de URL, que abarca la generación de identificadores, el diseño de la base de datos, la estrategia de caché y el procesamiento de redirecciones.

Dec 7, 2025 · Lectura de aproximadamente 1 min

URL Shortening

La arquitectura de un acortador de URL describe el diseño interno y los mecanismos técnicos que componen un servicio de acortamiento de URL. Es un tema recurrente en entrevistas de diseño de sistemas y un excelente ejemplo para aprender los principios de diseño de servicios web escalables.

La arquitectura básica se compone de tres elementos. Primero, el motor de acortamiento, que recibe la URL larga, genera un código corto único y lo almacena en la base de datos. Segundo, el motor de redirección, que recibe las solicitudes a la URL acortada, consulta el destino en la base de datos y devuelve una respuesta 301 o 302. Tercero, el motor de analítica, que recopila y agrega los datos de clics para ofrecer estadísticas.

Existen tres métodos principales para generar códigos cortos: basado en contador (se convierte un ID secuencial a Base62), basado en hash (se toman los primeros N caracteres del hash MD5 o SHA256 de la URL) y generación aleatoria (se crea una cadena aleatoria y se verifica que no exista colisión). El método basado en contador es el más sencillo, no produce colisiones y se utiliza ampliamente en servicios a gran escala.

La clave de la escalabilidad reside en la estrategia de caché. Las operaciones de redirección son abrumadoramente de lectura (más de 100 veces más que las de escritura), por lo que una capa de caché con Redis o Memcached resulta muy eficaz. Mantener en caché las URL acortadas más populares reduce drásticamente las consultas a la base de datos y permite tiempos de respuesta inferiores a 1 milisegundo.

En cuanto al diseño de la base de datos, los almacenes clave-valor como DynamoDB o Redis son ideales para la búsqueda de URL acortadas. La estructura es simple: el código corto como clave y la URL original junto con metadatos como valor. En servicios que procesan miles de millones de solicitudes mensuales, también se recurre al particionamiento (sharding) de la base de datos, por ejemplo dividiendo por el primer carácter del código corto. Puedes encontrar libros relacionados en Amazon.

Compartir en XHatena

¿Te resultó útil este artículo?

Términos relacionados

Artículos relacionados

Preguntas frecuentes

¿Es difícil crear un servicio de URL acortadas desde cero?
La funcionalidad básica (acortar + redirigir) se puede implementar en pocas horas. Sin embargo, para un servicio listo para producción se necesitan caché, limitación de tasa, detección de URL maliciosas y alta disponibilidad, entre otros requisitos adicionales.
¿Cómo se evitan las colisiones de códigos cortos?
Con el método basado en contador no hay colisiones por diseño. Con los métodos de hash o generación aleatoria, se verifica en la base de datos que el código generado no exista previamente y, en caso de colisión, se regenera.
¿Qué base de datos conviene usar para un acortador de URL?
Los almacenes clave-valor como DynamoDB o Redis son los más adecuados por su alto rendimiento en lecturas. Para proyectos pequeños, PostgreSQL o MySQL también funcionan bien. Añadir una capa de caché con Redis garantiza respuestas rápidas independientemente de la base de datos elegida.

Ready to create a short URL?

Shorten a URL for Free