SpringBoot整合SpringSeesion实现Redis缓存

使用Spring Boot开发项目时我们经常需要存储Session,因为Session中会存一些用户信息或者登录信息。传统的web服务是将session存储在内存中的,一旦服务挂了,session也就消失了,这时候我们就需要将session存储起来,而Redis就是用来缓存seesion的一种非关系型数据库,我们可以通过配置或者注解的方式将Spring Boot和Redis整合。而在分布式系统中又会涉及到session共享的问题,多个服务同时部署时session需要共享,Spring Session可以帮助我们实现这一功能。将Spring Session集成到Spring Boot框架中并使用Redis进行缓存是目前非常流行的解决方案,接下来就跟着小编一起学习吧。

操作方法

  • 01

    首先我们创建一个Spring Boot 2.x的项目,在application.properties配置文件中添加Redis的配置,Spring和Redis的整合可以参考小编其他的文章,此处不再详解。我们设置服务端口server.port为8080端口用于启动第一个服务。

  • 02

    接下来我们需要在pom文件中添加spring-boot-starter-data-redis和spring-session-data-redis这两个依赖,spring-boot-starter-data-redis用于整合Spring Boot和Redis,spring-session-data-redis集成了spring-session和spring-data-redis,提供了session与redis的整合方案。

  • 03

    接下来我们创建一个配置类RedisSessionConfig,这个类使用@Configuration注解表明这是一个配置类。在这个类上我们同时添加注解@EnableRedisHttpSession,表示开启Redis的Session管理。如果需要设置失效时间可以使用@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 3600)表示一小时后失效。若同时需要设置Redis的命名空间则使用@EnableRedisHttpSession(maxInactiveIntervalInSeconds=3600, redisNamespace="${spring.session.redis.namespace}") ,其中${spring.session.redis.namespace}表示从配置文件中读取这个命名空间。

  • 04

    配置完成后我们写一个测试类SessionController,在这个类中我们写两个方法,一个方法用于往session中存数据,一个用于从session中取数据,代码如下图所示,我们存取请求的url。启动类非常简单,一般都是通用的,我们创建一个名为SpringbootApplication的启动类,使用main方法启动。

  • 05

    接下来我们使用Postman分别请求上面两个接口,先请求存数据接口,再请求取数据接口,结果如下图所示,我们可以看到数据已从redis中取出。另外需要注意sessionId的值,这是session共享的关键。

  • 06

    为了验证两个服务是否共享了session,我们修改项目的配置文件,将服务端口server.port改为8090,然后再启动服务。此时我们不必在请求存数据的接口,只需要修改请求端口号再一次请求取数据的接口即可。由下图可以看到两次请求的sessionId值相同,实现了session的共享。

  • 07

    以上我们完成了SpringBoot整合SpringSeesion实现Redis缓存的功能,在此我们还要推荐一个Redis的可视化工具RedisDesktopManager,我们可以配置Redis数据库的连接,然后便可以非常直观地查看到存储到Redis中的session了,如下图所示,session的命名空间是share,正是从配置文件中读取到的。

(0)

相关推荐

  • Redis缓存技术应用

    Redis缓存技术应用 Redis缓存技术应用: 01 1. 安装redis服务 在linux系统中安装redis服务 02 2.上传redis相关软件. 03 3.redis服务器软件执行make编 ...

  • windows安装redis缓存使用图文教程

    下载安装 通过https://github.com/mythz/redis-windows这里可以直接下载,然后解压 再解压 现在我是在E盘建立了一个redis文件夹(当然建在其他盘也是可以的)。然后 ...

  • Spring Boot如何整合Redis

    Spring Boot是目前非常流行的Java Web开发框架,Redis是非关系型数据库的一种,以键值对的形式存储.Spring对Redis的支持是通过Spring Data Redis来实现的,给 ...

  • 怎么查看redis数据缓存的日志

    SLOWLOG SLOWLOG subcommand [argument] 什么是 SLOWLOG Slow log 是 Redis 用来记录查询执行时间的日志系统. 查询执行时间指的是不包括像客户端 ...

  • 教你认识主板整合显示卡

    整合显卡的2D性能差不多能完全满足现在一般人士工作和学习的需要,其最大瓶颈落在3D性能上,而决定整合显卡3D性能的主要因素除了显示核心外,就是整合显卡的显存大小了。因整合芯片组较多,整合显卡的显存大小 ...

  • 爱奇艺影音线上缓存线下观看

    爱奇艺是一个综合性的视频网站,爱奇艺影音是整合了爱奇艺视频平台的综合优势,推出的一款PC播放器,播放器本身集视频播放.在线视频的观看以及线上视频缓存下载观看的特点.由于爱奇艺影音中的视频,结合网站线上 ...

  • 爱奇艺怎么缓存视频

    爱奇艺怎么缓存视频 爱奇艺 爱奇艺影音PC版 爱奇艺影音针对了电脑PC.平板电脑以及手机三大平台推出了多个不同的版本.其中PC版本是爱奇艺所最先推出的版本之一.该版本有效地整合了综合视频网站爱奇艺的视 ...

  • SpringBoot与Mybatis实现SpringMVC Web项目详解

    一.热身 一个现实的场景是:当我们开发一个Web工程时,架构师和开发工程师可能更关心项目技术结构上的设计.而几乎所有结构良好的软件(项目)都使用了分层设计.分层设计是将项目按技术职能分为几个内聚的部分 ...

  • springboot配置数据连接及其基本配置

    springboot可以省去大量的xml文件配置.如果您需要对springboot进行配置,我这里有一些简单的配置项目的参数,你可以看看是否能用到. 操作方法 01 如果您需要修改默认的端口号,那么您 ...