SpringBoot整合SpringSeesion实现Redis缓存

2023-01-04 19:19:04来源:网络转载作者:匿名 阅读量:147 字体:

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

SpringBoot整合SpringSeesion实现Redis缓存

IntelliJ IDEA

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,正是从配置文件中读取到的。

特别提示

如果Redis服务器是很多项目共用的,非常建议配置命名空间,否则同时打开多个项目的浏览器页面可能会导致session错乱的现象。

推荐阅读

  • 剑网3精金阁的声望怎么刷?日常任务怎么接?

    剑网3精金阁的声望怎么刷?日常任务怎么接?

    电脑,剑网三客户端。01、打开剑网三,登陆游戏。神行千里去洛阳城。飞到地图右上角的那个神行点找柳柒柒接任务。(如果接不到任务就是因为洛阳城的地图任务没有做完)任务有两是需要打怪才能完成,任务完成去np...

    阅读: 802

  • 我的世界自动烟花机

    我的世界自动烟花机

    01、首先我们应该准备好相关的原材料,制作自动烟花机所需的原材料有红石中继器、红石块、活塞、发射器、若干烟花和红石。 02、准备好原料后我们就可以开始制造了,我们先将手中的原料摆成如图所示的样子,这...

    阅读: 920

  • GTA5需要启动怎么解决!

    GTA5需要启动怎么解决!

    01、首先我们需要打开“开始”菜单栏,在其中找到“控制面板”选项,点击进入。 02、在“控制面板”的页面中,找到“时钟、语言和区域”,点击进入。 03、找到“日期与时间”,点击进入。 04、在“...

    阅读: 775

  • 我的世界怎样做指南针

    我的世界怎样做指南针

    01、登录游戏,先制造一个工作台,等会我们需要在工作台上制作指南针。 02、准备好制作指南针的原料,制作指南针需要四块铁锭和一块红石。 03、有时候我们没有铁锭,这时就需要我们自己进行铁锭的合成,...

    阅读: 876

  • 富爸爸现金流游戏玩法介绍

    富爸爸现金流游戏玩法介绍

    01、首先,需要安装好软件。进入游戏页面后,建议选择单人游戏。 02、因为很多东西在现实生活中相通的,我们在游戏中的经验也可以用到现实生活中。然后,选择电脑玩家跟我们一起玩就好了。 03、创建好账...

    阅读: 808

  • 迷你世界怎么刷皮肤

    迷你世界怎么刷皮肤

    手机迷你世界APP软件01、目前在迷你世界游戏中玩家可以通过获得足够的迷你豆来兑换皮肤,因此要想刷皮肤,就意味着刷迷你豆。那怎么获得迷你豆啦,进入游戏主页后点击“我的家园”。 02、进入我的家园后,...

    阅读: 959

  • dnf个人传送怎么用

    dnf个人传送怎么用

    01、首先自己创建一个队伍,确定自己是队长。 02、打开功能菜单,找到公会系统。 03、找到中间的公会传送,左键点击。 04、然后在选择你要去的地点,即完成了一次个人传送。 05、以上就是小编...

    阅读: 1526

  • 英雄联盟lol怎么下载

    英雄联盟lol怎么下载

    01、先搜狗搜索:英雄联盟。 02、然后再点击页面中间的下载游戏。 03、选择最上方的下载方式进行子程序下载。 04、下载子程序完成之后,运行,会出现一个下载界面,点击开始下载即可。 05、完...

    阅读: 1325

  • LOLS8龙女打野天赋符文龙女出装加点

    LOLS8龙女打野天赋符文龙女出装加点

    01、首先选择精密系的致命节奏。 02、然后依次点出凯旋,传说:欢欣,致命一击。 03、副符文系选择主宰,然后点出猛然冲击和无情猎手。 04、出装和加点方式可以选择图中的方式。 05、以上就是...

    阅读: 1260

  • 英雄联盟lol哪些英雄克制剑圣?

    英雄联盟lol哪些英雄克制剑圣?

    01、武器大师作为半肉,武器大师有输出有控制有护甲,还有技能“反击风暴”的存在,完全不虚剑圣。在武器的打野套路被开发出的现在版本,剑圣在野区看见武器只能选择退让或者是呼唤队友,可见武器是非常的克制剑圣...

    阅读: 883

热门文章