Red de conocimiento de abogados - Derecho de sociedades - SpringBoot integra SpringSeesion para implementar el almacenamiento en caché de Redis

SpringBoot integra SpringSeesion para implementar el almacenamiento en caché de Redis

Cuando utilizamos Spring Boot para desarrollar proyectos, a menudo necesitamos almacenar la sesión porque cierta información del usuario o información de inicio de sesión se almacenará en la sesión. Los servicios web tradicionales almacenan sesiones en la memoria. Una vez que el servicio cuelga, la sesión desaparece. En este momento, necesitamos almacenar la sesión y Redis es una base de datos no relacional que se utiliza para almacenar en caché las sesiones. mediante configuración o anotaciones. En los sistemas distribuidos, la cuestión de compartir sesiones está involucrada. Cuando se implementan varios servicios al mismo tiempo, es necesario compartir sesiones para ayudarnos a implementar esta función. Integrar Spring Session en el marco Spring Boot y usar Redis para el almacenamiento en caché es una solución muy popular en la actualidad. Sígueme y aprended juntos. Herramientas/Materiales

IntelliJ IDEA

Primero creamos un proyecto Spring Boot 2.x y agregamos la configuración de Redis en el archivo de configuración application.properties Para la integración de Spring y Redis. consulte Mis otros artículos no se detallarán aquí. Configuramos el puerto de servicio server.port en el puerto 8080 para iniciar el primer servicio.

A continuación, debemos agregar spring-boot-starter-data-redis y spring-session-data-redis al archivo pom. spring-boot-starter-data-redis se utiliza para la integración. y Redis, spring-session-data-redis integra spring-session y spring-data-redis, proporcionando una solución de integración para sesión y redis.

A continuación creamos una clase de configuración RedisSessionConfig. Esta clase utiliza la anotación @Configuration para indicar que se trata de una clase de configuración. También agregamos la anotación @EnableRedisHttpSession a esta clase para indicar que la administración de sesiones de Redis está habilitada. Si necesita establecer el tiempo de vencimiento, puede usar @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 3600) para indicar que caducará después de una hora. Si necesita configurar el espacio de nombres de Redis al mismo tiempo, use @EnableRedisHttpSession (maxInactiveIntervalInSeconds=3600, redisNamespace="{spring.session.redis.namespace}"), donde {spring.session.redis.namespace} significa leer esto desde el espacio de nombres del archivo de configuración.

Una vez completada la configuración, escribimos una clase de prueba SessionController. En esta clase escribimos dos métodos, un método se usa para almacenar datos en la sesión y el otro se usa para recuperar datos de la sesión. El código es el que se muestra a continuación Indica que accedemos a la URL solicitada. La clase de inicio es muy simple y generalmente universal. Creamos una clase de inicio llamada SpringbootApplication y la iniciamos usando el método principal.

A continuación, utilizamos Postman para solicitar las dos interfaces anteriores respectivamente. Primero, solicitamos la interfaz de almacenamiento de datos y luego solicitamos la interfaz de recuperación de datos. El resultado se muestra en la siguiente figura. los datos se han extraído de redis. Además, debe prestar atención al valor de sessionId, que es la clave para compartir sesiones.

Para verificar si los dos servicios comparten la sesión, modificamos el archivo de configuración del proyecto, cambiamos el puerto del servicio server.port a 8090 y luego iniciamos el servicio. En este momento, no necesitamos solicitar la interfaz para almacenar datos, solo necesitamos modificar el número de puerto de solicitud y solicitar la interfaz para recuperar datos nuevamente. Como se puede ver en la figura siguiente, los valores de sessionId de las dos solicitudes son los mismos, lo que permite compartir sesiones.

Arriba hemos completado la función de integrar SpringBoot con SpringSeesion para implementar el almacenamiento en caché de Redis. Aquí también recomendamos una herramienta de visualización de Redis, RedisDesktopManager. Podemos configurar la conexión a la base de datos de Redis y luego podemos ver el almacenamiento. De manera muy intuitiva, vayamos a la sesión en Redis, como se muestra en la figura siguiente, el espacio de nombres de la sesión es compartido, que se lee desde el archivo de configuración. Consejos especiales

Si muchos proyectos utilizan el servidor Redis, se recomienda encarecidamente configurar el espacio de nombres; de lo contrario, abrir las páginas del navegador de varios proyectos al mismo tiempo puede causar confusión en la sesión.