文档章节

利用spring-session 和 redis 实现简单的session共享

疏影横斜
 疏影横斜
发布于 2017/12/26 13:22
字数 257
阅读 23
收藏 0

搭建分布式系统,session共享一直都是首先要处理的问题,其实处理这个问题的方法有很多种,比如使用cookie,memcached-session-manager,tomcat-redis-session-manager,tomcat Cluster等方式.

本文提供一种使用spring-session + redis实现的一种session共享的方式.

pom.xml

<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
    <version>1.3.1.RELEASE</version>
</dependency>

截止到发文,最新版本就是1.3.1.RELEASE,需要更新版本可以到maven中央库查看.

这个其实就是一个pom,内部依赖了其他的jar包,commons-pool2,spring-session,jedis还有spring的其他jar吧,所以pom里面就不需要引用这些jar包,防止jar包冲突.

properties文件配置

redis.host=127.0.0.1
redis.port=6379
redis.timeout=100000
redis.password=123456

spring配置文件配置:

	<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
		<property name="hostName" value="${redis.host}"/>
		<property name="port" value="${redis.port}"/>
		<property name="timeout" value="${redis.timeout}"/>
		<property name="password" value="${redis.password}"/>
	</bean>
	<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
		<property name="connectionFactory" ref="jedisConnectionFactory"/>
	</bean>
	<context:annotation-config/>
	<bean id="redisHttpSessionConfiguration" class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"/>

web.xml配置

<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>

 

© 著作权归作者所有

疏影横斜

疏影横斜

粉丝 7
博文 14
码字总数 6250
作品 0
青岛
私信 提问
Spring Session Redis 在不同服务间共享 Session 时的类共享方案

Spring Session Redis 是不安全的 当在多服务之间使用 Spring Session Redis 进行 Session 共享要非常小心,因为它很不安全,很有可能导致整个服务实例不可用,无法处理任何请求。其中比较危...

OSC首席骠妓大将军
09/02
246
0
Spring Boot 使用 Spring Session 集成 Redis 实现Session共享

Spring Boot 使用 Spring Session 集成 Redis 实现Session共享 《Spring Boot 2.0极简教程》—— 基于 Gradle + Kotlin的企业级应用开发最佳实践 通常在web开发中,Session 会话管理是很重要...

程序员诗人
2018/04/17
0
0
springboot集成springsession利用redis来实现session共享

spring boot的文档中,告诉我们添加@EnableRedisHttpSession来开启spring session支持,配置如下: Java代码 而@EnableRedisHttpSession这个注解是由spring-session-data-redis提供的,所以在...

鱼煎
2018/11/22
34
0
Springboot和Spring Session实现session共享

HttpSession是通过Servlet容器创建和管理的,像Tomcat/Jetty都是保存在内存中的。而如果我们把web服务器搭建成分布式的集群,然后利用LVS或Nginx做负载均衡,那么来自同一用户的Http请求将有...

ben4
2017/10/19
0
0
Spring Session 工作原理

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/KCOFv0nRuymkX79-RZi9eg 作者:张正林 HTTP协议本身是无状态的,为了保存会话信息,浏览器Cookie通过SessionID标识会话请...

2020Labs
07/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Podman 使用指南

> 原文链接:Podman 使用指南 Podman 原来是 CRI-O 项目的一部分,后来被分离成一个单独的项目叫 libpod。Podman 的使用体验和 Docker 类似,不同的是 Podman 没有 daemon。以前使用 Docker...

米开朗基杨
49分钟前
5
0
拯救 项目经理个人时间的5个技巧

优秀的项目经理都有一个共同点,那就是良好的时间管理能力。专业的项目经理会确保他们的时间投入富有成效,尽可能避免时间浪费。 时间管理叫做GTD,即Getting Things Done——“把事情做完”...

Airship
今天
6
0
LNMP环境介绍,Mariadb安装,服务管理,mariadb安装3

LNMP环境介绍 Nginx 处理的请求有两种,分为 静态与动态 图片,js,css,视频,音频,flash 等都是静态请求,这些数据都不是保存在数据库里面的 动态请求一般来说,需要的数据是在数据库里面...

doomcat
今天
1
0
前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
今天
7
0
数组和链表

数组 链表 技巧一:掌握链表,想轻松写出正确的链表代码,需要理解指针获引用的含义: 对指针的理解,记住下面的这句话就可以了: 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指...

code-ortaerc
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部