zoukankan      html  css  js  c++  java
  • spring-session之四:Spring Session下的Redis存储结构

    spring-session项目启动后

    127.0.0.1:6379> keys *
    1) "spring:session:index:org.springframework.session.FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME:user"

    运行示例httpsession一次后

    查看redis中的值:

    127.0.0.1:6379> keys *
    1) "spring:session:sessions:expires:fc454e71-c540-4097-8df2-92f88447063f"
    2) "spring:session:expirations:1515135000000"
    3) "spring:session:index:org.springframework.session.FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME:user"
    4) "spring:session:sessions:fc454e71-c540-4097-8df2-92f88447063f"

    Redis中的存储说明:
    ​1、spring:session是默认的Redis HttpSession前缀(redis中,我们常用’:’作为分割符)。
    2、每一个session都会创建3组数据:

    第一组:hash结构,spring-session存储的主要内容

    spring:session:sessions:fc454e71-c540-4097-8df2-92f88447063f

    hash结构有key和field,如上面的例子:hash的key为"spring:session:sessions"前缀加上fc454e71-c540-4097-8df2-92f88447063f,该key下的field有:

    • field=sessionAttr:qwe,value=123                
    • field=creationTime,value=                         //创建时间
    • field=maxInactiveInterval,value=             //
    • field=lastAccessedTime,value=              //最后访问时间

    见截图:

    第二组:String结构,用于ttl过期时间记录

    spring:session:sessions:expires:fc454e71-c540-4097-8df2-92f88447063f

    key为“spring:session:sessions:expires:”前缀+fc454e71-c540-4097-8df2-92f88447063f

    value为空

    第三组:set结构,过期时间记录

    spring:session:expirations:1515135000000

    set的key固定为“spring:session:expirations:1515135000000”,set的集合values为:

    • expires:c7fc28d7-5ae2-4077-bff2-5b2df6de11d8  //(一个会话一条)
    • expires:fc454e71-c540-4097-8df2-92f88447063f  //(一个会话一条)

    简单提一下:redis清除过期key的行为是一个异步行为且是一个低优先级的行为,用文档中的原话来说便是,可能会导致session不被清除。于是引入了专门的expiresKey,来专门负责session的清除,包括我们自己在使用redis时也需要关注这一点。在开发层面,我们仅仅需要关注第三个key就行了。

  • 相关阅读:
    路由器 命令行基础
    docker 学习
    flume 配置
    CentOS 7 安装字体库 & 中文字体
    centos7 web服务器内核优化
    hive 搭建
    varnish4.1 配置文件default.vcl
    varsh4.1 安装清除cache
    jvm 配置
    centos7优化内核参数详解
  • 原文地址:https://www.cnblogs.com/duanxz/p/3770032.html
Copyright © 2011-2022 走看看