**session问题:**
(1)HttpSession是通过Servlet容器进行创建和管理的。在单机环境中,通过Http请求创建的Session信息是存储在Web服务器内存中的,如Tomcat、Jetty等。
(2)现在很多的服务器都采用分布式集群的方式进行部署,用户在发起第一次请求时候访问了A站点,并在A站点的session中保存了登录信息,当用户第二次发起请求,通过负载均衡请求分配到B站点了,那么此时B站点能否获取用户保存的登录的信息呢?答案是不能的,因为Session是**存储在对应Web服务器的内存中**的,不能进行共享,可以**用Spring-sessio解决session的共享问题**。
使用spring session+redis存储的session如何查看.
127.0.0.1:6379> keys *
1) "spring:session:expirations:133337740000"
2) "spring:session:sessions:eefscef3ae-c8ea-4346-ba6b-9b3b26eee578"
127.0.0.1:6379> type spring:session:sessions:eeefefeae-c8ea-4346-ba6b-9b3b26eee578
hash
127.0.0.1:6379> hkeys spring:session:sessions:eeefefeae-c8ea-4346-ba6b-9b3b26eee578
1) "maxInactiveInterval"
2) "creationTime"
3) "lastAccessedTime"
存储在redis中的key的简单介绍说明:
//存储 Session 数据,数据类型hash,可以使用type查看
Key:spring:session:sessions:eeefefeae-c8ea-4346-ba6b-9b3b26eee578
//Redis TTL触发Session 过期。(Redis 本身功能),数据类型:String
Key:spring:session:sessions:expires:133337740000
//执行 TTL key ,可以查看剩余生存时间
//定时Job程序触发Session 过期。(spring-session 功能),数据类型:Set
Key:spring:session:expirations:133337740000
原文地址:http://blog.51cto.com/59465168/2178942
时间: 2024-10-18 16:23:06