SpringBoot+redis集成实现session的同步

SpringBoot+redis集成实现session的同步

1、导入依赖

<!-- Redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!-- Spring Session Redis 依赖-->
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
        </dependency>

2、配置类

package com.gc.RedisSession.config;

/**
 * @Author gaochuang
 * @Description //TODO
 * @Date {2023-02-15},{21:12}
 * @Param {SpringBootDemo}
 **/

import org.springframework.context.annotation.Configuration;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

/**
 *
 * maxInactiveIntervalInSeconds: 设置 Session 失效时间 
 * 使用 Redis Session 之后,原 Spring Boot 中的 server.session.timeout 属性不再生效。
 *
 */
@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400*30)
public class SessionConfig {
}

3、控制器

package com.gc.RedisSession.handler;

/**
 * @Author gaochuang
 * @Description //TODO
 * @Date {2023-02-15},{21:13}
 * @Param {SpringBootDemo}
 **/

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

/**
 * @Author gaochuang
 * @Description //TODO
 * @Date {2023-02-15},{17:40}
 * @Param {SpringBootDemo}
 **/
@RestController
public class RedisSessionController {
    @RequestMapping("/getsession")
    public String getSession(HttpServletRequest request) {
        System.err.println("A的SessionID:" + request.getSession().getId());
        return "A的SessionID:" + request.getSession().getId();
    }
}


4、配置文件

server.port=8080
# Redis 配置
# Redis 数据库索引(默认为0)
spring.redis.database=0
# Redis 服务器地址
spring.redis.host=10.70.20.25
# Redis 服务器连接端口
spring.redis.port=6379  
# Redis 服务器连接密码(默认为空)
spring.redis.password=123456
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.shutdown-timeout=100
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.min-idle=0

5、只是为了测试是否可以实现同步,所以创建了第二个同样的项目,将端口号进行了修改,就实现了Session的同步,如果日后需要部署的话,实时的修改配置的环境即可


版权声明:本文为weixin_45648789原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。