SpringBoot整合SpringSeesion实现Redis缓存

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

操作方式

  • 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,恰是从设置装备摆设文件中读取到的。

  • End

出格提醒

若是Redis办事器是良多项目共用的,很是建议设置装备摆设定名空间,不然同时打开多个项目标浏览器页面可能会导致session错乱的现象。

  • 发表于 2018-11-29 00:00
  • 阅读 ( 825 )
  • 分类:电脑网络

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
联系我们:uytrv@hotmail.com 问答工具