Un sistema de generación de cadenas cortas en línea basado en SpringBoot (con código fuente)

prefacio

Comparta un sistema de generación de enlaces cortos en línea basado en SpringBoot, un generador de enlaces cortos en línea.

El código fuente completo del proyecto se encuentra al final del artículo, puede descargarlo usted mismo~

1. Realizar la función

1. Convierta el enlace largo en un enlace corto. Al acceder al enlace corto, 302 redirige al enlace largo original

2. Admite establecer un período de validez de cadena corta

3. Soporte para registrar el número de visitas.

2. Pantalla de interfaz

3. Selección de tecnología

confiar ilustrar
SpringBoot marco básico
hoja de tomillo motor de plantillas
Plantilla Jdbc Marco de capa de persistencia
redis cache
guayaba Algoritmo hash, filtro Bloom

4. Darse cuenta de la lógica

1. Utilice el algoritmo MurmurHash para codificar el enlace largo original en un valor hash de 32 bits y convertir el valor hash a la codificación BASE62, que es un enlace corto.

2. Cuando el usuario acceda al enlace corto, verifique si hay un caché en Redis, y si existe, actualice el tiempo de caché, si no existe en el caché, vaya a la base de datos para buscar, si la búsqueda es exitosa , se agregará al caché de Redis, 302 redirige al enlace largo original y automáticamente aumenta el número de visitas al enlace; si no existe en la base de datos, salta a la página 404.

5. Alguna introducción técnica

1, MurmurHash

MurmurHash es una función hash no criptográfica adecuada para operaciones generales de recuperación de hash. En comparación con otras funciones hash populares como MD5, las características de distribución aleatoria de MurmurHash funcionan mejor para claves con una gran regularidad. Sin cifrado significa que, en comparación con MD5, el rendimiento de las funciones SHA debe ser mayor (de hecho, el rendimiento es más de diez veces mayor que el de los algoritmos de cifrado como MD5). MurmurHash tiene implementaciones de 32 bits, 64 bits y 128 bits, y 32 bits son suficientes para representar casi 4300 millones de enlaces cortos. Si se usa Java,  hay una implementación correspondiente en
guayaba o  hutool de Google, y aquí se usa guayaba.

2, base62

El valor hash generado por MurmurHash tiene un máximo de dígitos decimales 10. Para acortar aún más la longitud del enlace corto, el valor hash se puede convertir a la codificación base62, de modo que la longitud máxima sea solo caracteres 6.

3. La diferencia entre la redirección 301 y 302

  • 301, significa  redirección permanente , es decir, después de la primera solicitud para obtener un enlace largo, la próxima vez que el navegador solicite un enlace corto, no solicitará el servidor URL corto, sino que lo obtendrá directamente del caché del navegador. por lo que el número de clics en la URL corta no se puede obtener a nivel de servidor.Si el enlace resulta ser un enlace de una determinada actividad, el efecto de esta actividad no se puede analizar. Entonces, generalmente no usamos 301.
  • 302, significa  redirección temporal , es decir, cada vez que solicite un enlace corto, solicitará el servidor de URL corto (a menos que se use Cache-Control o Expired en la respuesta para implicar el almacenamiento en caché del navegador), lo cual es conveniente para el servidor para contar la cantidad de clics, por lo que, aunque se usa 302, agregará un poco de presión al servidor, pero hoy en día, cuando los datos son extremadamente importantes, este fragmento de código vale la pena, ¡así que se recomienda 302!

6. Descarga del código fuente del proyecto

Enlace de descarga del código fuente del proyecto : https://download.csdn.net/download/weixin_47367099/85397360

Haga clic aquí para descargar el código fuente del sistema de generación de cadenas cortas en línea desarrollado por SpringBoot Un código fuente del sistema de generación de cadenas cortas en línea basado en SpringBoot para realizar funciones 1. Convierta enlaces largos en enlaces cortos y acceda a enlaces cortos Para obtener más recursos de descarga y aprendizaje materiales, visite el canal de descarga de CSDN https://download.csdn.net/download/weixin_47367099/85397360

Supongo que te gusta

Origin blog.csdn.net/qq_41701956/article/details/124825393
Recomendado
Clasificación