`

spring session redis管理

阅读更多

项目使用的是SpringMVC+hibernate,由于部署使用nginx代理发布多台服务(多个tomcat),使用Spring-Session进行处理session,用redis托管Session。

下面为处理方式步骤:

1.如果项目之前没有整合过spring-data-redis的话,这一步需要先做,在maven中添加这几个依赖:

<!-- config redis data and client jar -->
<dependency>
	<groupId>org.springframework.data</groupId>
	<artifactId>spring-data-redis</artifactId>
	<version>1.6.4.RELEASE</version>
	<exclusions>
		<exclusion>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
		</exclusion>
		<exclusion>
			<groupId>org.springframework</groupId>
			<artifactId>spring-oxm</artifactId>
		</exclusion>
		<exclusion>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
		</exclusion>
	</exclusions>
</dependency>
<dependency>
	<groupId>redis.clients</groupId>
	<artifactId>jedis</artifactId>
	<version>2.8.1</version>
</dependency>

<!-- spring session configure -->
<dependency>
	<groupId>org.springframework.session</groupId>
	<artifactId>spring-session</artifactId>
	<version>1.2.0.RELEASE</version>
</dependency>

 

2. 再在applicationContext.xml中添加以下bean,用于定义redis的连接池和初始化redis模版操作类,自行替换其中的相关变量。

    <context:property-placeholder
        location="classpath*:redis/redis.properties" ignore-unresolvable="true" />

    <!-- redis 相关配置 -->
    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxIdle" value="${redis.maxIdle}" />
        <property name="maxWaitMillis" value="${redis.maxWait}" />
        <property name="testOnBorrow" value="${redis.testOnBorrow}" />
    </bean>

    <bean id="jedisConnectionFactory"
        class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
        p:host-name="${redis.host}" 
        p:port="${redis.port}" 
        p:password="${redis.password}" 
        p:pool-config-ref="poolConfig"
        p:database="${redis.database}" />

    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="jedisConnectionFactory" />
    </bean>

    <!-- 将session放入redis -->
    <bean id="redisHttpSessionConfiguration"
        class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
        <property name="maxInactiveIntervalInSeconds" value="1800" />
    </bean>

 

3. 然后是在web.xml中添加一个session代理filter,通过这个filter来包装Servlet的getSession()。将配置放置到最前面,让其具有最优先地位。

	<filter>
		<filter-name>springSessionRepositoryFilter</filter-name>
		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>springSessionRepositoryFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

 

 测试环节:

 

   1. 开启两个tomcat,eg:localhost:8888和localhot:8080 然后运行起来。

 

   2.开开一个浏览器(一定注意使用同一个浏览器),打开8080的一个tab,然后登录,进入个人中心(需要登录才能进入的界面)。登录之后,将连接拷贝到另外一个浏览器tab,端口改为8888,发现不用登录就已经登录进去了。

 

   3.查看redis,Mac下可以使用rdm工具

 

 

 

分享到:
评论

相关推荐

    spring session redis分布式session

    为了解决这个问题,Spring Session提供了一种优雅的解决方案,特别是结合Redis作为持久化存储时,可以实现高效的分布式Session管理。本文将详细介绍Spring Session与Redis集成,以及如何自定义Session来应对分布式...

    spring session redis相关配置文件

    spring session + redis 实现web工程的session共享,本配置使用maven导入相关jar包,非maven项目可自行下载对应jar包,摘取技术点相关配置即可

    spring-session-redis/spring整合redis管理session依赖jar包

    commons-pool2-2.3.jar,jedis-2.8.0.jar,spring-data-redis-1.6.0.RELEASE.jar,spring-session-1.1.1.RELEASE.jar,Spring-data-redis(Version 1.6.0.RC1)中文版.pdf

    Spring Session + redis实现session共享

    首先,Spring Session是一个开源项目,由Pivotal Software开发,它扩展了Spring MVC,提供了对HTTP会话(session)的管理支持。Spring Session的核心思想是将session数据从传统的JVM内存中移出,存储到一个独立的...

    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等技术,旨在构建一个强大的、安全的、具有...

    SpringBoot+MyBatis+SpringSession+Redis实现session共享及单点登录

    SpringBoot+MyBatis+SpringSession+Redis实现session共享及单点登录开发实例

    解决Spring session(redis存储方式)监听导致创建大量redisMessageListenerContailner-X线程问题

    首先,Spring Session是一个用于管理用户会话信息的项目,它能够将用户会话数据存储在外部存储中,而不是存储在服务器的内存中。这对于分布式系统、负载均衡、无状态的微服务架构等场景尤其有用。通过Spring Session...

    springboot 项目,基于springsession整合redis实现登录拦截功能

    然后,我们需要配置Spring Boot以使用Spring Session,这可以通过在`application.properties`或`application.yml`文件中指定Session存储类型(例如:`spring.session.store-type=redis`)。 2. **配置Redis连接**:...

    SpringDataRedis的jar包.rar

    6. **事务支持**:虽然Redis本身不支持ACID事务,但Spring Data Redis提供了有限的事务管理能力,比如`RedisTransactionManager`,可以在多个操作之间保持一致性。 7. **Redis Cache**:Spring框架的缓存抽象可以与...

    spring-session+spring+redis的依赖包

    总之,这个压缩包提供的"spring-session+spring+redis"组合,是Java Web开发中实现高可用分布式会话管理的一种常见解决方案。通过使用Redis作为存储,结合Spring Session的便捷性和Jedis的高效访问,可以在复杂环境...

    SpringSession+redis共享jar包

    SpringSession 是一个开源项目,由Pivotal Software开发,它扩展了Spring Framework的功能,使得在分布式环境中管理用户会话(Session)变得更加简单。这个项目的主要目标是解决在微服务架构中,由于请求可能会被...

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

    "nginx+spring-session+redis 实现session共享"是分布式系统中常见的解决方案,它结合了Nginx的负载均衡能力、Spring-Session的数据持久化特性以及Redis的高可用性,有效地解决了分布式环境下的会话管理问题。...

    spring-session-data-redis-2.0.4.RELEASE-API文档-中文版.zip

    赠送jar包:spring-session-data-redis-2.0.4.RELEASE.jar; 赠送原API文档:spring-session-data-redis-2.0.4.RELEASE-javadoc.jar; 赠送源代码:spring-session-data-redis-2.0.4.RELEASE-sources.jar; 赠送...

    spring Session与Redis的jar包

    总之,Spring Session结合Redis提供了一种优雅的方式来管理和扩展Web应用的会话机制,对于构建高可用、高性能的现代Web服务至关重要。在开发过程中,确保正确配置和使用这两个组件,将大大提升系统的稳定性和用户...

    Spring Boot Redis Session 共享(Ajax 跨域)

    首先,我们需要理解Spring Boot中的Session管理。默认情况下,Spring Boot使用内存中的HttpSession来存储用户会话信息,但这种方式在多服务器环境下可能导致Session不一致。为了解决这个问题,我们可以借助Redis这个...

    Redis、springSession共享包

    Redis 和 SpringSession 是在分布式系统中管理用户会话(Session)的两个重要工具。Redis 是一个高性能的键值数据存储系统,常用于缓存和消息代理。SpringSession 是 Spring 生态系统的一个扩展,它允许我们在分布式...

    spring-session-data-redis-2.0.4.RELEASE-API文档-中英对照版.zip

    赠送jar包:spring-session-data-redis-2.0.4.RELEASE.jar; 赠送原API文档:spring-session-data-redis-2.0.4.RELEASE-javadoc.jar; 赠送源代码:spring-session-data-redis-2.0.4.RELEASE-sources.jar; 赠送...

    spring-redis-session 自定义 key 和过期时间

    Spring-Redis-Session 是一个基于 Spring 框架的会话管理模块,它使用 Redis 作为会话存储介质,提供了灵活的会话管理机制。在本文中,我们将详细介绍 Spring-Redis-Session 的自定义 key 和过期时间的实现原理和...

    Spring Boot + Spring Session + Redis

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

    SpringSession+Redis实现Session共享案例

    `SpringSession` 是一个优秀的框架,它提供了一种优雅的方式来进行Session管理,尤其是跨服务器的Session共享。配合`Redis`作为存储后端,我们可以构建高可用、可扩展的Session共享解决方案。下面将详细解释`Spring...

Global site tag (gtag.js) - Google Analytics