<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ### 18.3.2 使用Redis 本章將用Redis來保存Session,你需要安裝Redis,如果未安裝,請參考Redis一章,Spring Boot的配置如下: ~~~properties spring.session.store-type=Redis spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=Redis!123 ~~~ 還需要引入對Redis的依賴 ~~~xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ~~~ 再次訪問/putsession.html后,我們通過redis客戶端工具訪問redis,比如使用redis-cli,鍵入如下命令 ~~~ keys spring:session:* ~~~ 查詢所有“spring:session:”開頭的keys,輸出類似如下 ~~~ 3) "spring:session:sessions:expires:863c7e73-8249-4780-a08e-0ff2bdddda86" .... 7) "spring:session:sessions:863c7e73-8249-4780-a08e-0ff2bdddda86" ~~~ 會話信息存放在“spring:session:sessions:開頭"的key里,863c7e73-8249-4780-a08e-0ff2bdddda86代表一個會話id,“spring:session:sessions“是一個Hash數據結構,可以用Redis HASH相關的命令來查看這個用戶會話的數據,使用hgetall 查看會話所有的信息 ~~~ >hgetall "spring:session:sessions:863c7e73-8249-4780-a08e-0ff2bdddda86" 1) "sessionAttr:user" 2) "maxInactiveInterval" ....... ~~~ 使用如下命令來查看該session的user信息 ~~~ >HMGET "spring:session:sessions:863c7e73-8249-4780-a08e-0ff2bdddda86" sessionAttr:user ~~~ sessionAttr:user 是Spring Session存入Redis的key值,sessionAttr:是其前綴, user是我們在Spring Boot設置會話Key。其他Spring Boot默認還創建的key還有 * creationTime ,創建時間 * maxInactiveInterval 指定時間(秒)后過期 * lastAccessedTime 上次訪問時間 * sessionAttr: 以“sessionAttr:”為前綴的會話信息,比如sessionAttr: user 因此,Redis保存的會話類似這樣的格式用Redis來操作,類似如下 ~~~ >HMSET spring:session:sessions:863c7e73-8249-4780-a08e-0ff2bdddda86 creationTime 1404360000000 maxInactiveInterval 1800 lastAccessedTime 1404360000000 sessionAttr:attrName someAttrValue sessionAttr:attrName2 someAttrValue2 ~~~ > **注意** > > Spring Session 的Redis實現,并不是每次通過Session類獲取會話信息或者保存的時候都會調用redis操作,他會先嘗試從內部的HashMap讀取值,如果沒有,才調用redis 的HMGET 操作。同樣,當保存會話的時候,也并沒有立即調用Redis操作,而是先保存到HashMap中,等待服務請求結束后再將變化的值使用HMSET更新 。如果你想在保存會話操作后立即更新到Reids里,你需要配置成IMMEDIATE 模式,修改配置屬性 > > ~~~properties > spring.session.redis.flushMode=IMMEDIATE > ~~~ > 我們注意到,還有另外一個Redis Key 是 “spring:session:sessions:expires:863c7e73-8249-4780-a08e-0ff2bdddda86”,這是因為redis會話過期并沒有直接使用在session:sessions:key變量上,而是專門用在session:sessions:expires:key上,當此key過期后,會自動清除對應的會話信息.使用ttl查看會話過期時間 ~~~ >ttl spring:session:sessions:expires:863c7e73-8249-4780-a08e-0ff2bdddda86 (integer) 1469 ~~~ 默認是1800秒,即30分鐘,現在只剩下1469秒。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看