zoukankan      html  css  js  c++  java
  • 【快学springboot】11.整合redis实现session共享

    前言

    这里都是基于前面的项目基础上的。springboot整合redis非常的方便,这也是springboot的宗旨,简化配置。这篇文章就教大家如何使用springboot整合redis来实现session共享。

    引入依赖

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

    配置redis

    在application.properties中配置redis

    # Redis服务器地址
    
    spring.redis.host=localhost
    
    # Redis服务器连接端口
    
    spring.redis.port=6379
    
    # Redis服务器连接密码(默认为空)
    
    spring.redis.password=
    

    因为我本地redis没有设置密码,所以密码这里留空。这个配置项可以去掉,但是我留在这是是想告诉大家可以在这里配置redis密码

    实现session共享

    其实springboot实现session共享非常的方便,只需要一个@EnableRedisHttpSession注解即可。把该注解加在springboot启动类的上面。

    【快学springboot】11.整合redis实现session共享

    到这里,已经实现redis存储session的功能了。下面通过一个简单例子测试下session是否存储在redis中了。

    新建一个SessionController.java,并且写一个设置session的方法,如下:

    【快学springboot】11.整合redis实现session共享

    启动项目,通过postman调用,如下:

    【快学springboot】11.整合redis实现session共享

    通过redis可视化工具,查看redis中是否存在该属性:

    【快学springboot】11.整合redis实现session共享

    通过查看,happyjava已经存在redis中了。

    使用nginx测试

    通过上面的例子,已经证明了session被redis存储了,下面,我们通过把应用启动在两个端口,使用nginx转发,测试session是否真的共享了。

    nginx.config配置

    upstream session_server {
    
    server 127.0.0.1:8080;
    
    server 127.0.0.1:8081;
    
    }
    
    server {
    
    listen 80;
    
    server_name localhost;
    
    location / {
    
    proxy_pass http://session_server;
    
    proxy_set_header Host $host;
    
    }
    
    }
    

    这里把localhost这个请求,转发到了本地的8080和8081端口。

    通过server.port指定程序的端口号

    application.properties

    server.port=8081
    

    写一个获取session的方法

    SessionController.java

    【快学springboot】11.整合redis实现session共享

    这里通过Value注解获取了配置文件的server.port属性,并且通过getSession方法返回。

    把程序启动在两个端口

    IDEA设置可以多次启动同个main方法。

    【快学springboot】11.整合redis实现session共享

    【快学springboot】11.整合redis实现session共享

    把Allow paralled run勾上,即可多次启动一个main方法了。我们先把server.port设置为8080启动一次,然后改为8081再次启动。

    通过postman多次调用,可以获得结果如下:

    【快学springboot】11.整合redis实现session共享

    【快学springboot】11.整合redis实现session共享

    可以看到,port分别出现了8080和8081,并且都能够正常获取到之前设置的happyjava这个值,说明session共享已经配置成功了。

    总结

    springboot配置session共享是非常方便的,只需要EnableRedisHttpSession注解即可。其实也可以使用EnableMongoHttpSession注解用MongoDB来管理session。

  • 相关阅读:
    各国语言缩写列表,各国语言缩写-各国语言简称,世界各国域名缩写
    How to see log files in MySQL?
    git 设置和取消代理
    使用本地下载和管理的免费 Windows 10 虚拟机测试 IE11 和旧版 Microsoft Edge
    在Microsoft SQL SERVER Management Studio下如何完整输出NVARCHAR(MAX)字段或变量的内容
    windows 10 x64系统下在vmware workstation pro 15安装macOS 10.15 Catelina, 并设置分辨率为3840x2160
    在Windows 10系统下将Git项目签出到磁盘分区根目录的方法
    群晖NAS(Synology NAS)环境下安装GitLab, 并在Windows 10环境下使用Git
    使用V-2ray和V-2rayN搭建本地代理服务器供局域网用户连接
    windows 10 专业版安装VMware虚拟机碰到的坑
  • 原文地址:https://www.cnblogs.com/happy4java/p/11205831.html
Copyright © 2011-2022 走看看