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共享教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Java日常练习题,每天进步一点点(3)

    Java日常练习题,每天进步一点点(3)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • Springcloud RestTemplate服务调用代码实例

    Springcloud RestTemplate服务调用代码实例

    这篇文章主要介绍了Springcloud RestTemplate服务调用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Java编程实现直接插入排序代码示例

    Java编程实现直接插入排序代码示例

    这篇文章主要介绍了Java编程实现直接插入排序代码示例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • SpringBoot(十)之邮件服务

    SpringBoot(十)之邮件服务

    这篇文章给大家介绍了SpringBoot邮件服务的相关知识,此文是使用springboot最新版本1.5.3进行开发的。本文给大家介绍的非常详细,具有参考借鉴价值,需要的的朋友参考下吧
    2017-05-05
  • Java中ArrayList的使用方法简单介绍

    Java中ArrayList的使用方法简单介绍

    这篇文章主要为大家简单介绍了Java中ArrayList的使用方法,针对ArrayList去重问题进行扩展分析,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • mybatis中bind标签和concat的使用说明

    mybatis中bind标签和concat的使用说明

    这篇文章主要介绍了mybatis中bind标签和concat的使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 深度剖析Java成员变量、局部变量和静态变量的创建和回收时机

    深度剖析Java成员变量、局部变量和静态变量的创建和回收时机

    这篇文章主要介绍了深度剖析Java成员变量、局部变量和静态变量的创建和回收时机,成员变量是定义在类中的变量,每个类的实例都会拥有自己的成员变量。它们的生命周期与对象的创建和销毁相对应,下面我将详细介绍它们的特点和生命周期,需要的朋友可以参考下
    2023-07-07
  • Java实现带附件的邮件发送功能

    Java实现带附件的邮件发送功能

    这篇文章主要为大家详细介绍了Java实现带附件的邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 如何解决springmvc文件下载,内容损坏的问题

    如何解决springmvc文件下载,内容损坏的问题

    这篇文章主要介绍了解决springmvc文件下载,内容损坏的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • springboot 日志实现过程

    springboot 日志实现过程

    Spring Boot 使用 SLF4J 作为日志门面,Logback 或 Log4j2 作为日志实现,日志门面提供统一接口,简化日志记录,实现负责具体功能,Spring Boot 默认使用 SLF4J 和 Logback,可以通过配置文件或注解进行日志记录和控制,感兴趣的朋友一起看看吧
    2025-01-01

最新评论