关注:64 发布时间:2021-09-23 20:49:01
导语本文整理了springboot整合springseesion实现redis缓存经验知识,帮助您全面了解,小白也能成为高手,跟随小编一起来看一看吧!
在使用spring boot开发项目时,我们经常需要存储session,因为有些用户信息或者登录信息会存储在session中。传统的web服务将会话存储在内存中。一旦服务挂起,会话就会消失。此时,我们需要存储会话。redis是一个用于缓存视图的非关系数据库。我们可以通过配置或注释来集成spring boot和redis。在分布式系统中,涉及会话共享。当同时部署多个服务时,需要共享会话。spring session可以帮助我们实现这个功能。将spring session集成到spring boot框架中并用redis进行缓存是目前非常流行的解决方案,所以让我们来学习一下小编。
intellij idea
首先,我们创建一个spring boot 2.x项目,并在application.properties配置文件中添加redis配置。spring和redis的集成可以参考小编的其他文章,这里就不详细解释了。我们将服务端口server.port设置为端口8080,以启动第一个服务。
接下来,我们需要将spring-boot-starter-data-redis和spring-session-data-redis添加到pom文件中。spring-boot-starter-data-redis用来集成spring boot和redis。spring-session-data-redis集成了spring-session和spring-data-redis,提供了session和redis的集成方案。
接下来,我们创建一个配置类redissessionconfig,[email?protected]时,我们在这个类中添加了注释@ enablereditttpsession,意思是打开redis的会话管理。如果您需要设置到期时间,您可以使用@ enableredittpsession(maxinactiveintervalinsets=3600)来指示一小时后到期。如果需要同时设置redis的命名空间,请使用@ enableredittpsession(maxinactiveinvalinsors=3600,redis namespace=" { spring . session . redis . namespace } "),其中{ spring . session . redis . namespace }表示从配置文件中读取此命名空间。
配置完成后,我们编写一个测试类sessioncontroller。在这个类中,我们编写了两种方法,一种用于在会话中存储数据,另一种用于从会话中获取数据。代码如下图所示,我们访问请求的url。启动类很简单,一般通用。我们创建了一个名为springbootapplication的启动类,并用主方法启动它。
接下来,我们使用邮递员分别请求上述两个接口,首先请求数据存储接口,然后请求数据检索接口。结果如下图所示,我们可以看到数据已经从redis中检索出来了。另外,注意sessionid的价值,这是会话共享的关键。
为了验证这两个服务是否共享会话,我们修改了项目的配置文件,将服务端口server.port更改为8090,然后启动服务。此时,我们不需要请求存储数据的接口,只需要修改请求端口号就可以再次请求提取数据的接口。从下图可以看出,两个请求的sessionid值是相同的,从而实现了会话的共享。
以上,我们完成了将springboot与springseesion集成的功能,实现了redis缓存。在这里,我们还推荐一个redis可视化工具redisdesktopmanager。我们可以配置redis数据库的连接,然后我们可以直观地查看redis中存储的会话。如下图所示,会话的名称空间是share,它是从配置文件中读取的。
如果redis服务器由多个项目共享,强烈建议配置命名空间,否则同时打开多个项目的浏览器页面可能会导致会话混乱。
上一篇:怎么在spss中对个案等级排序
下一篇:微信小程序怎么取消授权
1054位用户关注
974位用户关注
745位用户关注
740位用户关注
604位用户关注
595位用户关注