美文网首页
SpringBoot集成Redis实现分布式Session共享

SpringBoot集成Redis实现分布式Session共享

作者: 任未然 | 来源:发表于2022-01-13 09:46 被阅读0次

    一. 概述

    Spring的session的失效时间默认为30min,可以通过 server.servlet.session.timeout=30m配置, 但是这种session都是单机有效的,对于分布式系统就不太友好了, 本Demo将简单集成Redis实现分布式session共享

    二. SpringBootDemo

    2.1 依赖

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.session</groupId>
                <artifactId>spring-session-data-redis</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
            </dependency>
    
            <!-- 对象池,使用redis时必须引入 -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
            </dependency>
    

    2.2 application.yml

    server:
      port: 8080
      servlet:
        context-path: /demo
        # session超时时间 默认30分钟
        session:
          timeout: 30m
    spring:
      session:
        store-type: redis
        redis:
          # 会话刷新模式
          flush-mode: immediate
          # 用于存储会话的键的命名空间
          namespace: "spring:session"
      redis:
        host: localhost
        port: 6379
        # 连接超时时间(记得添加单位,Duration)
        timeout: 10000ms
        # Redis默认情况下有16个分片,这里配置具体使用的分片
        # database: 0
        lettuce:
          pool:
            # 连接池最大连接数(使用负值表示没有限制) 默认 8
            max-active: 8
            # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
            max-wait: -1ms
            # 连接池中的最大空闲连接 默认 8
            max-idle: 8
            # 连接池中的最小空闲连接 默认 0
            min-idle: 0
    

    相关文章

      网友评论

          本文标题:SpringBoot集成Redis实现分布式Session共享

          本文链接:https://www.haomeiwen.com/subject/fyvmcrtx.html