专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

SpringBoot springsession redis(springboot整合redisson)

ins518 2025-04-09 17:01:00 技术文章 26 ℃ 0 评论

背景

正常情况下,我们前端一般会用nginx做负载均衡横向扩展,有时候我们会选择IP绑定负载均衡策略,但是很多情况下,我们每个节点可能资源不同,所以能够承受的用户访问量也不同,那么采用权重轮询的负载均衡策略可能会更加有效,这种情况下,我们的后台session就不能放在每个节点了,需要进行共享,我们可以放在数据库或者redis中,通常情况下我们会选择redis,下面介绍用SpringBoot整合spring session+redis。

整合spring session +redis

整合起来其实很简单,如下几步即可。

1、引入依赖


    org.springframework.boot
    spring-boot-starter-data-redis


    org.springframework.session
    spring-session-data-redis

2、配置文件

spring: 
  #redis集群
  redis:
    port: 6379
    host: 192.168.157.6
    password: 123456
    pool: 
      max-active: 8
      max-wait: -1
      max-idle: 8
      min-idle: 0
  session:
    store-type: redis # Session store type.

如果是集群模式,则需要用集群模式的redis配置文件

spring:
  #redis集群
  redis:
    database: 0
    jedis:
      pool:
        max-active: 8
        max-wait: -1
        max-idle: 8
        min-idle: 0
      timeout: 10000
      cluster:
        nodes:
          - 127.0.0.1:6379
  session:
    store-type: redis # Session store type.

3、启动类加上注解

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

设置3600s过期

测试

请求然后发现redis有如下key

spring:session:expirations:1617380520000
spring:session:sessions:7f22b339-52d2-47dd-8538-64e1eecdbd36
spring:session:sessions:expires:7f22b339-52d2-47dd-8538-64e1eecdbd36

并且客户端一直用的是同一个sessionid

完成!



Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表