百科查询网经验知识百科全书!
首页 >游戏数码 >IT技术 > SpringBoot整合SpringSeesion实现Redis缓存

SpringBoot整合SpringSeesion实现Redis缓存

0次浏览 | 2022-10-25 05:21:45 更新
来源 :互联网
最佳回答
本文由作者推荐

简要回答

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

蚂蚁集团完成投票权的调整  会带来什么影响
蚂蚁集团股票权的调整,直接影响到了整个集团的战略和决策,近日,蚂蚁集团对外公布了已经完成的投票权的调整,引起了业内外人士...
5G+北斗 高精定位能做些什么
近日,工业和信息化部批复中国移动使用4.9G赫兹部分的5G频率资源,在我国的多个省份开展5G地空通讯技术的试验,该技术的...
邮政快递改地址如何修改
生活当中很多人都会选择网购,使用邮政快递收发快递也是很常见的,那么邮政快递改地址如何修改呢?具体修改方法如下。首先打开邮...
星偶软件怎么设置谁可以和我合照
 有很多朋友都在用星偶软件,但是很多朋友不知道星偶软件怎么设置谁可以和我合照,其实步骤很简单,跟随我一起看看吧!首先打开...
皮皮虾怎样开启微信授权
皮皮虾是一款非常不错的软件,这里又有很多搞笑的帖子,在这里可以寻找到快乐,并且也能够看到众多幽默的神评论,那么皮皮虾怎样...
excel阅读模式找不到怎么办
Excel表格之间很多人都在使用,可以把自己想要记录的数据记录在其中,展现的方法会非常好,那么Excel阅读模式找不到怎...
如何抹掉iPhone手机的数据
使用iPhone手机时间久了之后,手机当中会有多种多样的数据,如果说决定不再使用这款手机,那么要把手机当中的数据消除,那...
Tencent是什么文件夹(Tencent文件夹能删除吗)
Tencent文件夹主要是腾讯应用程序当中默认安装的一种文件夹,它是不可以删除的。日常生活中只要使用腾讯QQ,微信,腾讯...
如何在excel中打钩(excel里打勾在哪里)
很多人在日常办公或学习时都离不开excel等软件,但也有些小白对excel这些软件缺乏了解,不知该如何在内容中打勾,下面...
win7怎么设置屏幕休眠密码(win7屏幕保护设置密码)
想要设置win7系统电脑的屏幕休眠密码很简单,只需在桌面的个性化设置功能中操作即可,下面就给大家来介绍一下详细内容。1....
关于我们 | 版权声明 | 免责声明 | 联系我们
免责声明:百科查询网所有文字、图片、视频、音频等资料均来自互联网,不代表本站赞同其观点,内容仅代表作者本人意见,若因此产生任何纠纷作者本人负责,本站亦不为其版权负责! 如有问题,请联系我们
CopyRight©1999-2022 www.chaxunla.com All Right Reserved 闽ICP备16000424号