`
sunbin
  • 浏览: 353331 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

转:spring boot + redis 实现session共享

 
阅读更多

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

 

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

Java代码  收藏代码
  1. @Configuration  
  2. @EnableRedisHttpSession  
  3. public class RedisSessionConfig {  
  4. }  

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

Java代码  收藏代码
  1. <dependency>  
  2.         <groupId>org.springframework.boot</groupId>  
  3.         <artifactId>spring-boot-starter-redis</artifactId>  
  4. </dependency>  
  5. <dependency>  
  6.         <groupId>org.springframework.session</groupId>  
  7.         <artifactId>spring-session-data-redis</artifactId>  
  8. </dependency>  

 

 

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

Java代码  收藏代码
  1. spring.redis.host=localhost  
  2. spring.redis.port=6379  

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

 

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

Java代码  收藏代码
  1. server.port=8080  

 

接下来定义一个Controller: 

Java代码  收藏代码
  1. @RestController  
  2. @RequestMapping(value = "/admin/v1")  
  3. public class QuickRun {  
  4.     @RequestMapping(value = "/first", method = RequestMethod.GET)  
  5.     public Map<String, Object> firstResp (HttpServletRequest request){  
  6.         Map<String, Object> map = new HashMap<>();  
  7.         request.getSession().setAttribute("request Url", request.getRequestURL());  
  8.         map.put("request Url", request.getRequestURL());  
  9.         return map;  
  10.     }  
  11.   
  12.     @RequestMapping(value = "/sessions", method = RequestMethod.GET)  
  13.     public Object sessions (HttpServletRequest request){  
  14.         Map<String, Object> map = new HashMap<>();  
  15.         map.put("sessionId", request.getSession().getId());  
  16.         map.put("message", request.getSession().getAttribute("map"));  
  17.         return map;  
  18.     }  
  19. }  

 

启动之后进行访问测试,首先访问8080端口的tomcat,返回:

Java代码  收藏代码
  1. {"request Url":"http://localhost:8080/admin/v1/first"}  

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

Java代码  收藏代码
  1. {"sessionId":"efcc85c0-9ad2-49a6-a38f-9004403776b5","message":"http://localhost:8080/admin/v1/first"}  

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

Java代码  收藏代码
  1. {"sessionId":"efcc85c0-9ad2-49a6-a38f-9004403776b5","message":"http://localhost:8080/admin/v1/first"}  

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

 

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

Java代码  收藏代码
  1. {"request Url":"http://localhost:9090/admin/v1/first"}  

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

Java代码  收藏代码
  1. {"sessionId":"efcc85c0-9ad2-49a6-a38f-9004403776b5","message":"http://localhost:9090/admin/v1/first"}  

 

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

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

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

分享到:
评论

相关推荐

    springboot +shiro+redis实现session共享(方案二)1

    "Spring Boot + Shiro + Redis 实现 Session 共享方案二" 1. 概述 本文档旨在介绍如何使用 Spring Boot、Shiro 和 Redis 实现分布式 session 共享,以解决 Web 应用程序的登录 session 统一问题。 2. 相关依赖 ...

    Spring Session + redis实现session共享

    Spring Session的核心思想是将session数据从传统的JVM内存中移出,存储到一个独立的数据存储系统,如Redis,这样可以实现session在多台服务器之间的共享。 Redis是一个高性能的键值数据库,常用于缓存和消息代理。...

    Springboot+SpringSecurity+SpringSession+Redis+Mybatis-Plus+Swwager.zip

    本项目“Springboot+SpringSecurity+SpringSession+Redis+Mybatis-Plus+Swwager”整合了Spring Boot、Spring Security、Spring Session、Redis、Mybatis-Plus以及Swagger等技术,旨在构建一个强大的、安全的、具有...

    SpringSession+Redis实现Session共享案例

    SpringSession结合Redis实现Session共享是Web开发中一种常见的解决方案,特别是在分布式系统中,为了保持用户在不同服务器之间访问时的会话一致性。本案例旨在教你如何配置和使用SpringSession与Redis来达到这一目的...

    nginx+spring-session+redis 实现session共享

    标题 "nginx+spring-session+redis 实现session共享" 涉及到的是在分布式系统中如何处理会话(session)共享的问题。在分布式环境中,由于用户请求可能被路由到不同的服务器节点,传统的session存储方式(如JVM内存...

    nginx+redis实现session共享

    在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"nginx+redis实现session共享"的主题就涉及到了这一核心需求。为了实现单点登录(Single Sign-On, SSO)以及跨应用的session共享,我们可以结合使用Nginx作为...

    基于Springboot+Mybatis+ SpringMvc+springsecrity+Redis完整网站后台管理系统

    项目描述 说明: spring security 全注解式的权限管理 动态配置权限,角色和资源,权限控制到...Springboot+Mybatis+ SpringMvc+springsecrity+Redis+bootstrap+jquery 数据库文件 压缩包内 jar包文件 maven搭建

    springboot + redis实现session共享

    本文将详细解释如何使用Spring Boot和Redis来实现session共享,并探讨相关的核心概念和技术。 首先,我们要了解什么是session。在Web应用程序中,session是一种用于跟踪用户状态的技术。当用户登录后,服务器会为该...

    springboot+Nginx+redis实现session共享

    本教程将详细讲解如何利用Spring Boot、Nginx和Redis来实现高效的Session共享,以满足大规模并发场景下的会话管理需求。 **Spring Boot与Session管理** Spring Boot是基于Spring框架的快速开发工具,它简化了配置...

    Spring Boot + Spring Session + Redis

    标题 "Spring Boot + Spring Session + Redis" 涉及到的是在Java开发中,使用Spring Boot框架集成Spring Session和Redis来实现会话管理的技术方案。这个解决方案主要解决分布式系统中的session共享问题,使得用户在...

    Spring+Redis+Nginx实Session共享的Demo

    本示例“Spring+Redis+Nginx实Session共享的Demo”提供了一种解决方案,利用Spring、Redis缓存和Nginx反向代理来实现跨服务器的Session一致性。 首先,我们来理解每个组件的作用: 1. **Spring**:这是一个广泛...

    spring boot与redis 实现session共享教程

    本文主要介绍了使用spring boot与redis实现session共享的教程,旨在帮助读者了解如何使用spring boot和redis实现session共享。下面是本文的知识点总结。 一、Spring Boot与Redis实现Session共享的必要依赖项 在...

    SpringSession+redis共享jar包

    SpringSession通过将Session数据持久化到外部存储,如Redis,实现了跨服务器的Session共享。 Redis 是一个高性能的键值数据库,常被用作缓存和消息代理。在SpringSession中,Redis被用作Session的存储后端,因为其...

    Spring-Boot-Redis-Session:Spring Boot整合Redis与Session共享

    Spring-Boot-Redis-Session Spring Boot整合Redis,详情请查看依赖Spring Boot依赖(创建项目时选择) Sprint Boot2.1.5.RELEASE由于spring-boot-starter-parent 2.1.5.RELEASE中的会话需要安全性支持,故此需要约会...

    Springboot+redis+mybatisplus实例

    此外,Spring Session可以利用Redis来实现会话共享,提高分布式应用的用户体验。 **Spring Boot整合MyBatis-Plus** 集成MyBatis-Plus,首先在`pom.xml`中添加MyBatis-Plus和MyBatis的依赖。然后,在`application....

    springboot+redis共享session(Demo)

    本项目“springboot+redis共享session(Demo)”旨在演示如何在Spring Boot应用中结合Redis实现session的分布式共享,从而解决在集群环境中session不一致的问题。 首先,我们来理解一下session的基本概念。Session是...

    Spring Boot Redis Session 共享(Ajax 跨域)

    总结,通过Spring Boot结合Redis,我们可以实现高效的分布式Session共享,确保用户会话在多服务器环境下的一致性。同时,通过CORS配置,我们解决了Ajax跨域问题,使得前端可以无障碍地与后端进行交互。这两个功能...

    Spring+Struts2+hibernate+Redis整合

    在SSH+Redis的整合中,Spring不仅作为业务层的管理框架,还可以通过其提供的JedisTemplate或RedisTemplate来实现对Redis的操作。 2. **Struts2框架**:Struts2是一个基于MVC设计模式的Web应用框架,用于处理用户...

    Spring Boot Redis Session 共享

    Spring Boot结合Redis作为Session存储机制,能够实现高效且可靠的Session共享。本篇将深入探讨如何在Spring Boot项目中利用Redis进行Session共享。 首先,我们需要理解Spring Boot和Redis的基础。Spring Boot是...

Global site tag (gtag.js) - Google Analytics