如何将Spring Session存储到Redis中实现持久化
作者:薯条和番茄酱
这篇文章主要介绍了如何将Spring Session存储到Redis中实现持久化,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
Session持久化
1. 添加依赖
在项目中添加session依赖和redis依赖,如下所示:
<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>2. 配置redis连接信息
# redis连接配置信息 spring.redis.host=124.221.76.124 # 不写默认wei6379,数据库为0 # spring.redis.database=15 spring.redis.port=6379 # 配置session连接信息 spring.session.store-type=redis server.servlet.session.timeout=1800 spring.session.redis.flush-mode=on_save spring.session.redis.namespace=spring:session
3. 存储和读取session从Redis
package com.example.sp_redis.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* 实现session持久化
* @author zq
* @date 2023-07-26 14:37
*/
@RestController
public class UserController {
private static final String SESS_USER_KEY = "SESS_USER_KEY";
@RequestMapping("/login")
public String login(HttpSession httpSession) {
//存入session
httpSession.setAttribute(SESS_USER_KEY, "wangwu");
return "Session set success.";
}
@RequestMapping("/getuser")
public String getUser(HttpServletRequest request) {
String user = "NULL";
HttpSession session = request.getSession(false);
if (session != null) {
//从redis中获取session
Object userObj = session.getAttribute(SESS_USER_KEY);
if (userObj != null) {
user = userObj.toString();
}
}
return user;
}
}我们访问localhost:8080/login 将session存入redis

接着访问localhost:8080/login可以读取到缓存中的数据

接着我们可以在redis客户端看到存入到session

到此这篇关于如何将Spring Session存储到Redis中实现持久化的文章就介绍到这了,更多相关Spring Session Redis持久化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
