環境准備:
- 部署兩台 tomcat 8.0
- 安裝 redis 服務器
- 下載工具庫( commons-pool2-2.3.jar、jedis-2.7.2.jar 、改良版的 tomcat-redis-session-manager.jar )
環境搭建:
- 拷貝 commons-pool2-2.3.jar、jedis-2.7.2.jar 、 tomcat-redis-session-manager.jar到tomcat安裝目錄的lib目錄下
- 修改tomcat目錄下的conf/context.xml,在其中加入下面代碼,注意修改ip和端口
<Valve className="com.demo.redis_session.RedisSessionHandlerValve" />
<Manager className="com.demo.redis_session.RedisSessionManager"
host="127.0.0.1"
port="6379"
database="0"
maxInactiveInterval="60" />
簡單測試:(訪問兩台tomcat服務器首頁,並顯示session)
- 啟動redis服務器
- 修改兩個tomcat目錄下webapps/ROOT/index.jsp,加入紅色部分的代碼
<body>
<div>Tomcat 1</div>
<div><%= session.getId()%></div>
<div id="wrapper">
- 刪除index.jsp的下面session配置的紅色部分代碼,開啟session
<%@ page
session="false" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
- 修改tomcat目錄下的conf/sever.xml配置文件,改動部分見紅色代碼(tomcat1 端口前加1,tomcat2端口前加2)
<Server
port="18005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
...
<Connector
port="18080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
...
<Connector
port="18009" protocol="AJP/1.3" redirectPort="8443" />
- 啟動兩台tomcat
- 打開瀏覽器訪問tomcat1和tomcat2的首頁(期望結果:兩個頁面顯示的session id相同)
localhost:18080
localhost:28080
- 開啟redis客戶端,輸入下面內容(期望結果:redis中存在頁面相同session id的key)
keys *
參考文章:
