springboot+redis实现session共享

1.场景描述

因项目访问压力有点大,需要做负载均衡,但是登录使用的是公司统一提供的单点登录系统,需要做session共享,否则假如在A机器登录成功,在B机器上操作就会存在用户未登录情况。

2. 解决方案

因项目是springboot项目,采用Springboot+Springsession+Redis来实现session共享。

2.1 pom.xml文件

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-redis</artifactId>
     <version>1.4.7.RELEASE</version>
 </dependency>
 <dependency>
     <groupId>org.springframework.session</groupId>
     <artifactId>spring-session-data-redis</artifactId>
 </dependency> 

2.2 springboot中开启session支持

springboot启动类添加@EnableRedisHttpSession标签来开启spring session支持,代码:

@EnableRedisHttpSession
@SpringBootApplication
public class SptestApplication {
    public static void main(String[] args) {
    
        SpringApplication.run(SptestApplication.class, args);
    }
}

2.3 配置文件中增加配置项

在application.properties中增加配置项

spring.redis.host=10.192.168.13
spring.redis.port=6379

其他还有几个配置项,不影响使用,不详说了,需要了解的可以查看API。

springboot+redis实现session共享_Java