1. 程式人生 > >tomcat伺服器redis管理session

tomcat伺服器redis管理session

session伺服器的2種方式:

第一種是在專案中的程式碼中修改

第二種是修改tomcat中的原始碼,把存放session的地方更改到redis伺服器上

本文使用的是第二種方法,因為這樣不會對專案進行修改。並且開發人員獲取session的方式和以前相同

*本帖會從tomcat的匯入eclipse開始,如果只是想使用,可以直接跳到結尾部分。

一、編譯tomcat原始碼

1.tomcat是由ant編譯而成的,所以需要下載ant

   下載後新增環境變數ANT_HOME,PATH

   使用然後進入cmd下執行 ant -version檢視是否安裝成功

        2.下載tomcat原始碼

            進入到tomcat根目錄進行原始碼編譯(該編譯過程可能會受網路影響)

ant download
ant
    依賴包的下載會下載到預設的/usr/share/java目錄下

    修改ant下載依賴包路徑修改,需要拷貝將“build.properties.default” 修改為 “build.properties”並且修改其中base.path後面的路徑

 編譯後會在根目錄下產生output資料夾,內為編譯後的class檔案

二、匯入tomcat原始碼

  我這裡使用的是eclipse

  1.建立一個java專案

  2.選擇File - > import -> File System,在From directory中選擇tomcat原始碼包中的java和test兩個資料夾,在Into folder中選擇我們剛新建的Tomcat8專案,Finish,然後記得將這兩個資料夾標記為source code(怎麼標記?右鍵選擇者資料夾 -> Build Path -> Use as Source Folder)。

          3.引入jar包,所需jar包在編譯時下載的依賴包內都能找到。

          4.拷貝編譯後產生的output/build下的conf和lib到專案根目錄中(webapps可選)

          5.找到Bootstrap.java類執行tomcat

三、修改tomcat自帶的session儲存方式(本例為tomcat8下)

四、實際案例

 把之前編譯好的tomcat-redis-session-manager.jar和兩個依賴包jedis-2.7.2.jar,commons-pool2-2.0.jar放入正式tomcat,lib目錄下

 修改conf目錄下的context.xml檔案

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
         host="localhost" <!-- optional: defaults to "localhost" -->
         port="6379" <!-- optional: defaults to "6379" -->
         database="0" <!-- optional: defaults to "0" -->
         maxInactiveInterval="60" <!-- optional: defaults to "60" (in seconds) -->
         sessionPersistPolicies="PERSIST_POLICY_1,PERSIST_POLICY_2,.." <!-- optional -->
         sentinelMaster="SentinelMasterName" <!-- optional -->
         sentinels="sentinel-host-1:port,sentinel-host-2:port,.." <!-- optional --> />
 然後啟動tomcat伺服器。你就會看到你的session已經儲存到你配置的redis伺服器中。