spring boot与redis 实现session共享教程

 更新时间:2017年04月12日 14:07:05   作者:mengmeng89012  
这篇文章主要介绍了spring boot与redis 实现session共享教程,非常不错,具有参考借鉴价值,需要的朋友可以参考下

如果大家对spring boot不是很了解,大家可以参考下面两篇文章。

Spring Boot 快速入门教程

Spring Boot 快速入门指南

这次带来的是spring boot + redis 实现session共享的教程。

在spring boot的文档中,告诉我们添加@EnableRedisHttpSession来开启spring session支持,配置如下:

@Configuration 
@EnableRedisHttpSession 
public class RedisSessionConfig { 
} 

而@EnableRedisHttpSession这个注解是由spring-session-data-redis提供的,所以在pom.xml文件中添加:

<dependency> 
  <groupId>org.springframework.boot</groupId> 
  <artifactId>spring-boot-starter-redis</artifactId> 
</dependency> 
<dependency> 
  <groupId>org.springframework.session</groupId> 
  <artifactId>spring-session-data-redis</artifactId> 
</dependency> 

接下来,则需要在application.properties中配置redis服务器的位置了,在这里,我们就用本机:

spring.redis.host=localhost 
spring.redis.port=6379 

这样以来,最简单的spring boot + redis实现session共享就完成了,下面进行下测试。

首先我们开启两个tomcat服务,端口分别为8080和9090,在application.properties中进行设置【下载地址】   :

server.port=8080  

接下来定义一个Controller:

@RestController 
@RequestMapping(value = "/admin/v1") 
public class QuickRun { 
 @RequestMapping(value = "/first", method = RequestMethod.GET) 
 public Map<String, Object> firstResp (HttpServletRequest request){ 
  Map<String, Object> map = new HashMap<>(); 
  request.getSession().setAttribute("request Url", request.getRequestURL()); 
  map.put("request Url", request.getRequestURL()); 
  return map; 
 } 
 @RequestMapping(value = "/sessions", method = RequestMethod.GET) 
 public Object sessions (HttpServletRequest request){ 
  Map<String, Object> map = new HashMap<>(); 
  map.put("sessionId", request.getSession().getId()); 
  map.put("message", request.getSession().getAttribute("map")); 
  return map; 
 } 
} 

启动之后进行访问测试,首先访问8080端口的tomcat,返回 获取【下载地址】   :

{"request Url":"http://localhost:8080/admin/v1/first"} 

接着,我们访问8080端口的sessions,返回:

{"sessionId":"efcc85c0-9ad2-49a6-a38f-9004403776b5","message":http://localhost:8080/admin/v1/first}

最后,再访问9090端口的sessions,返回:

{"sessionId":"efcc85c0-9ad2-49a6-a38f-9004403776b5","message":http://localhost:8080/admin/v1/first}

可见,8080与9090两个服务器返回结果一样,实现了session的共享

如果此时再访问9090端口的first的话,首先返回:

{"request Url":"http://localhost:9090/admin/v1/first"} 

而两个服务器的sessions都是返回:

{"sessionId":"efcc85c0-9ad2-49a6-a38f-9004403776b5","message":"http://localhost:9090/admin/v1/first"} 

通过spring boot + redis来实现session的共享非常简单,而且用处也极大,配合nginx进行负载均衡,便能实现分布式的应用了。

本次的redis并没有进行主从、读写分离等等配置(_(:з」∠)_其实是博主懒,还没尝试过.......)

而且,nginx的单点故障也是我们应用的障碍......以后可能会有对此次博客的改进版本,比如使用zookeeper进行负载均衡,敬请期待。

好了,到此结束吧,以上所述是小编给大家介绍的spring boot与redis 实现session共享教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 详解SpringCloud微服务架构之Hystrix断路器

    详解SpringCloud微服务架构之Hystrix断路器

    本篇文章主要介绍了详解SpringCloud微服务架构之Hystrix断路器,Hystrix是一个库,通过添加延迟容差和容错逻辑来帮助您控制这些分布式服务之间的交互,有兴趣的可以了解一下
    2018-01-01
  • Java详解entity转换到vo过程

    Java详解entity转换到vo过程

    这篇文章将用实例来和大家介绍一下entity转换到vo的方法过程。文中的示例代码讲解详细,对我们学习Java有一定的帮助,需要的可以参考一下
    2022-06-06
  • 详解Java中Vector和ArrayList的区别

    详解Java中Vector和ArrayList的区别

    这篇文章主要为大家详细介绍了Java中Vector和ArrayList的区别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Springcloud ribbon负载均衡算法实现

    Springcloud ribbon负载均衡算法实现

    这篇文章主要介绍了Springcloud ribbon负载均衡算法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • idea一招搞定同步所有配置(导入或导出所有配置)

    idea一招搞定同步所有配置(导入或导出所有配置)

    使用intellij idea很长一段时间,软件相关的配置也都按照自己习惯的设置好,如果需要重装软件,还得需要重新设置,本文就详细的介绍了idea 同步所有配置,感兴趣的可以了解一下
    2021-07-07
  • Spring Boot中使用Activiti的方法教程(二)

    Spring Boot中使用Activiti的方法教程(二)

    工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,下面这篇文章主要给大家介绍了关于Spring Boot中使用Activiti的相关资料,需要的朋友可以参考下
    2018-08-08
  • 解决java中的父类私有成员变量的继承问题

    解决java中的父类私有成员变量的继承问题

    这篇文章主要介绍了解决java中的父类私有成员变量的继承问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 排序算法图解之Java选择排序

    排序算法图解之Java选择排序

    选择排序的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。本文通过图片和示例介绍了选择排序,需要的可以参考一下
    2022-11-11
  • java实现后台返回base64图形编码

    java实现后台返回base64图形编码

    这篇文章主要介绍了java实现后台返回base64图形编码,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Java String不可变性实现原理解析

    Java String不可变性实现原理解析

    这篇文章主要介绍了Java String不可变性实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论