Spring session整合到Redis过程解析

网友投稿 370 2022-12-23


Spring session整合到Redis过程解析

为何要用Spring-session

在传统单机web应用中,一般使用tomcat/jetty等web容器时,用户的session都是由容器管理。浏览器使用cookie中记录sessionId,容器根据sessionId判断用户是否存在会话session。这里的限制是,session存储在web容器中,被单台服务器容器管理。

但是网站主键演变,分布http://式应用和集群是趋势(提高性能)。此时用户的请求可能被负载分发至不同的服务器,此时传统的web容器管理用户会话session的方式即行不通。除非集群或者分布式web应用能够共享session,尽管tomcat等支持这样做。但是这样存在以下两点问题:

需要侵入web容器,提高问题的复杂

web容器之间共享session,集群机器之间势必要交互耦合

有了spring-session之后,我们可以将session保存到Redis、Mongodb等nosql数据库。这样就避免了单点缓存的限制。

Let's do it

1.引入jar包

org.springframework.session

spring-session-data-redis

redis.clients

jedis

2.9.0

2、在application.properties中加入如下配置文件

#设置session存储格式为redis

spring.session.store-type=redis

server.servlet.session.timeout=3600

#session更新策略,有ON_SAVE、IMMEDIATE,前者是在调用#SessionRepository#save(org.springframework.session.Session)时,在response commit前刷新缓存,#后者是只要有任何更新就会刷新缓存

spring.session.redis.flush-mode=on-save

spring.session.redis.namespace=spring:session

#redis配置

spring.redis.database=0

spring.redis.host=10.34.51.234

spring.redis.password=123456

spring.redis.pool.max-active=8

spring.redis.pool.max-idle=8

spring.redis.pool.max-wait=-1

spring.redis.pool.min-idle=0

spring.redis.port=6379

3、配置redis服务器

(略)

4、编写SpringBoot程序

5、运行登录一下吧

可以看到查看到了session信息

6、未完成序列化操作。不过我感觉也没必要完成序列化操作吧~

结束!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:spring boot mybatis多数据源解决方案过程解析
下一篇:Spring MVC Controller返回值及异常的统一处理方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~