Spring-session整合到Redis
2024-10-07 23:29:06
闲来无事,学习一下spring的session管理,作为一个初学者,我了解到了如下内容:
1、为何要用Spring-session
在传统单机web应用中,一般使用tomcat/jetty等web容器时,用户的session都是由容器管理。浏览器使用cookie中记录sessionId,容器根据sessionId判断用户是否存在会话session。这里的限制是,session存储在web容器中,被单台服务器容器管理。
但是网站主键演变,分布式应用和集群是趋势(提高性能)。此时用户的请求可能被负载分发至不同的服务器,此时传统的web容器管理用户会话session的方式即行不通。除非集群或者分布式web应用能够共享session,尽管tomcat等支持这样做。但是这样存在以下两点问题:
- 需要侵入web容器,提高问题的复杂
- web容器之间共享session,集群机器之间势必要交互耦合
有了spring-session之后,我们可以将session保存到Redis、Mongodb等nosql数据库。这样就避免了单点缓存的限制。
Let's do it
1.引入jar包
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
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、未完成序列化操作。不过我感觉也没必要完成序列化操作吧~
结束!
最新文章
- [LeetCode] Combination Sum III 组合之和之三
- 工作总结_sql
- Message启动菜单个性化制作工具V1.0.3.1最终版
- Android锁屏后数据改变的解决方案
- outlook备份及恢复
- (第五章)java面向对象之this的作用总结
- ios ASIHttpLib 同步请求和异步请求
- sql 循环语句几种方式
- Servlet概述
- Quartz学习——Spring和Quartz集成详解(三)
- 学习笔记1--响应式网页+Bootstrap起步+全局CSS样式
- css实现3D切换功能
- java编程目录
- [Swift]LeetCode641. 设计循环双端队列 | Design Circular Deque
- 爬虫(九)scrapy框架简介和基础应用
- TLS/SSL测试工具
- centos6.8 安装python2.7 or python3.6
- 【LeetCode】32. Longest Valid Parentheses (2 solutions)
- codeforces 407D Largest Submatrix 3
- CentOS-6.x系列查看cpu核数
热门文章
- 搞大数据,你不懂这三大数据处理趋势就OUT了
- pinmap 和 pin allocation
- 4_2.springboot2.x配置之springmvc自动配置
- 解决jquery调用NET webservice跨域的问题
- AutoIt自动化编程(2)【转】
- Apache添加多端口及实现单ip多端口映射的方法
- thinkphp 子查询
- [复习]平衡树splay
- typedef int (init_fnc_t) (void)和typedef int (*init_fnc_t) (void)
- Python实例1-Collatz 序列