**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

转载于:https://blog.51cto.com/59465168/2178942

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐