闲来无事,学习一下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、未完成序列化操作。不过我感觉也没必要完成序列化操作吧~

结束!

  

最新文章

  1. [LeetCode] Combination Sum III 组合之和之三
  2. 工作总结_sql
  3. Message启动菜单个性化制作工具V1.0.3.1最终版
  4. Android锁屏后数据改变的解决方案
  5. outlook备份及恢复
  6. (第五章)java面向对象之this的作用总结
  7. ios ASIHttpLib 同步请求和异步请求
  8. sql 循环语句几种方式
  9. Servlet概述
  10. Quartz学习——Spring和Quartz集成详解(三)
  11. 学习笔记1--响应式网页+Bootstrap起步+全局CSS样式
  12. css实现3D切换功能
  13. java编程目录
  14. [Swift]LeetCode641. 设计循环双端队列 | Design Circular Deque
  15. 爬虫(九)scrapy框架简介和基础应用
  16. TLS/SSL测试工具
  17. centos6.8 安装python2.7 or python3.6
  18. 【LeetCode】32. Longest Valid Parentheses (2 solutions)
  19. codeforces 407D Largest Submatrix 3
  20. CentOS-6.x系列查看cpu核数

热门文章

  1. 搞大数据,你不懂这三大数据处理趋势就OUT了
  2. pinmap 和 pin allocation
  3. 4_2.springboot2.x配置之springmvc自动配置
  4. 解决jquery调用NET webservice跨域的问题
  5. AutoIt自动化编程(2)【转】
  6. Apache添加多端口及实现单ip多端口映射的方法
  7. thinkphp 子查询
  8. [复习]平衡树splay
  9. typedef int (init_fnc_t) (void)和typedef int (*init_fnc_t) (void)
  10. Python实例1-Collatz 序列