(转载)spring-session-data-redis的实现原理剖析

2018年07月06日 22:39:15 jiaojizu 阅读数:2698

1. 写在前边

spring-session-data-redis我们这里简称springSession。 我们知道springSession基于Redis实现了分布式Session的管理,那么下面我们说说什么是分布式session,分布式session实现原理,session为什么要存到redis中,那么SpringSession是如何把Session信息存储到redis中的呢(主题)?


2. 为什么会有分布式session的存在?

我们如果用nginx做一个流量分发,一部分流量请求tomcatA,一部分流量请求tomcatB,同一个用户的不同请求可能会产生在不同的tomcat上,我们知道session是由tomcat管理的,那么我们如何保证两台tomcat的session同步呢,为了解决这一问题,所以产生了分布式session。

总结:分布式session是解决分布式环境session不一致问题的。


3. 分布式session实现原理

为了解决session不一致问题,那么我们放弃服务器容器的默认session保存方式,我们将session保存到自己的数据库中,那么我们就解决了session不一致问题。


4. 分布式session为什么要存到redis中

因为redis是内存数据库,效率高,而且可以做分布式和高可用集群。


5. SpringSession是如何把Session信息存储到redis中的

总体思路是通过一个过滤器,然后重新包装request和reponse以及session。 在SpringSession实现过程中DelegatingFilterProxy就是这个过滤器入口。


6. 下面通过图我们看看SpringSession的实现原理

①sping配置类

 

 

②request包装类

 

③reponse包装类 

 

④替换request和reponse包装的调用流程

至此已分享结束。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值