前言
在上一篇文章中,壹哥 已经带大家实现了分布式环境下的Session共享功能,但之前的案例中,其实还是存在着一些问题,主要就是性能不够高效。现在开发时,分布式的Session共享功能都是基于Redis来进行实现的,简单又高效,那这个该如何实现呢?本篇教程中,壹哥 就带大家基于Redis来实现Session共享功能。
一. 基于Redis实现分布式的Session共享
1. 创建web项目
我们按照之前的经验,创建一个web程序,并将之改造成Spring Boot项目,具体过程略。
2. 添加依赖包
在pom.xml文件中添加如下核心依赖包。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<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>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-core</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.39</version>
</dependency>
3. 创建application.yml配置文件
创建application.yml文件,在其中添加如下配置,尤其是要把redis的配置设置好。
server:
port: 8080
servlet:
#设置session过期时间
session:
timeout: "PT10M"
spring:
application:
name: spring-session-jpa
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: syc
url: jdbc:mysql://localhost:3306/spring-security?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&serverTimezone=UTC
redis:
host: localhost
port: 6379
database: 0
jedis:
pool:
max-idle: 8
min-idle: 0
max-active: 8
session:
#设置session存储类型
store-type: redis
jpa:
database: mysql
show-sql: true #开发阶段,打印要执行的sql语句.
hibernate:
ddl-auto: update
4. 创建User实体类
创建一个实体类,用于封装用户信息。
package com.yyg.boot.entity;
imp