java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot使用Redis存储Session

SpringBoot使用Redis存储Session实践

作者:小福尼学编程

本文介绍了Session的基本概念、工作流程和常见应用场景,并详细解释了如何在JavaServlet中使用Session,接着,文章讨论了Redis存储Session的优势和配置方法,并提供了一个示例代码,最后,总结了如何使用Redis存储Session以及注意事项

Session的基本概念

Session(会话)是一种在客户端与服务器之间维持状态的机制。它允许服务器在多个请求之间存储用户的数据,以便用户可以在访问网站或应用时维持某种程度的连续性和个性化体验。

以下是对 session 的详细解释:

Session的工作流程

在Java Servlet中

Session的常见应用场景

Session的存储方式

接下来进入正题Redis存储Session

Redis存储Session

Redis存储Session的优势

高性能

可扩展性

丰富的数据结构

高效的内存管理

Spring Boot实现Redis存储

导入依赖

	 <!--Redis存储Session的依赖-->
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
</dependency>
	<!--Spring Boot 的 Redis依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

修改application配置文件

spring:
  data:
    redis:
      port: 6379
      host: localhost
      database: 1 #修改存储数据的redis库
  session:
    timeout: 86400 #session的过期时间
    store-type: redis #session 的存储位置

完成上述配置就可以将session存入redis了

接下来写一个示例代码

@PostMapping("/login")
    public String login(HttpServletRequest request){
        String sessionUser = "session存储进来了";
       	request.getSession().setAttribute("session",sessionUser );
        return "session存储成功";
    }

这是没有存储之前的Redis

这是存储之后的Redis

存储进Redis的数据会乱码是因为Redis 默认以二进制安全的方式存储数据因此,确保在存储和读取数据时使用一致的编码格式非常重要。如果存储时使用了不同的编码格式或数据序列化方法,读取时可能会出现乱码问题。确保你的应用在存储和读取 session 数据时使用相同的编码和序列化方式,比如 JSON 或二进制序列化,并确保数据的一致性。

上述查看Redis的应用是QuickRedis,这个软件可以快速查看Redis中的所有数据

如果之后要修改Redis中的session数据就重新setAttribute一次就可以了,这样就会修改Redis中的session数据

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

您可能感兴趣的文章:
阅读全文