Red de conocimiento informático - Problemas con los teléfonos móviles - SpringBoot se integra con SpringSeesion para el almacenamiento en caché de Redis.

SpringBoot se integra con SpringSeesion para el almacenamiento en caché de Redis.

Cuando utilizamos Spring Boot para desarrollar proyectos, a menudo necesitamos almacenar sesiones porque la sesión almacenará cierta información del usuario o información de inicio de sesión. Los servicios web tradicionales almacenan sesiones en la memoria. Una vez que se suspende el servicio, 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. Podemos usar Spring Boot y Redis. configuración o anotación. Podemos integrar Spring Boot con Redis mediante configuración o anotaciones. En los sistemas distribuidos, se requiere compartir sesiones. Cuando se implementan varios servicios al mismo tiempo, es necesario compartir sesiones. Spring Session puede ayudarnos a realizar 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 para obtener más información. 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. , Consúlteme. Otros artículos no se presentarán en detalle aquí. Configuramos el puerto de servicio server.port en 8080 para iniciar el primer servicio.

A continuación, debemos agregar las dependencias spring-boot-starter-data-redis y spring-session-data-redis en el archivo pom. spring-boot-starter-data-redis se usa para integrar Spring Boot y Redis, y spring-session-data-redis se usa para integrar Spring Boot y Redis. Redis y spring-session-data-redis integran spring-session y spring-data-redis para proporcionar una solución integrada para sesiones y Redis.

A continuación, creamos una clase de configuración RedisSessionConfig, que utiliza la anotación @Configuration para indicar que es una clase de configuración. También agregamos la anotación @EnableRedisHttpSession en esta clase para habilitar la administración de sesiones de Redis. Si necesita establecer el tiempo de vencimiento, puede usar @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 3600) para indicar que la sesión caducará después de una hora. Si también necesita configurar el espacio de nombres de Redis, use @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 3600, redisNamespace="{spring.session.redis.namespace}") donde {spring.session.redis.namespace} es el nombre de la sesión, { spring .session.redis.namespace} significa leer 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, uno para almacenar datos en la sesión y otro para obtener datos de la sesión. Como se muestra en la figura, accedemos a la URL solicitada. La clase de inicio es muy simple, en términos generales, creamos una clase llamada 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, primero solicitamos la interfaz de almacenamiento de datos y luego solicitamos la interfaz de recuperación de datos. Los resultados se muestran en la figura siguiente. ha sido sacado de redis. Además, también debemos prestar atención al valor de sessionId, que es la clave para disfrutar de la sesión.

Para verificar si los dos servicios **** tienen sesiones, 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 para solicitar la interfaz nuevamente para obtener datos. En la figura siguiente, podemos ver que el valor de sessionId de las dos solicitudes es el mismo, lo que logra el disfrute de la sesión.

Arriba hemos completado la integración de SpringBoot con la función de caché SpringSeesion Redis. También recomendamos una herramienta de visualización de Redis, RedisDesktopManager. Podemos configurar la conexión de la base de datos de Redis y luego ver las sesiones almacenadas en Redis de forma muy intuitiva. Como se muestra en la figura siguiente, el espacio de nombres de la sesión es Compartir, que se lee desde el archivo de configuración. Consejos especiales

Si el servidor Redis se utiliza para varios proyectos***, se recomienda encarecidamente configurar el espacio de nombres; de lo contrario, abrir páginas del navegador para varios proyectos al mismo tiempo puede provocar errores de configuración de la sesión.