将Tomcat的会话持久化到外部的Redis的方法
这篇文章是关于如何实现会话的外部持久化(非粘性会话)的。
环境
-
- Java 1.6.0_45
-
- Apache Tomcat 6.0.48
- Redis 3.2.7
$ java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
$ sh version.sh
Using CATALINA_BASE: /opt/apache-tomcat-6.0.48
Using CATALINA_HOME: /opt/apache-tomcat-6.0.48
Using CATALINA_TMPDIR: /opt/apache-tomcat-6.0.48/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/apache-tomcat-6.0.48/bin/bootstrap.jar
Server version: Apache Tomcat/6.0.48
Server built: Nov 7 2016 20:05:27 UTC
Server number: 6.0.48.0
OS Name: Linux
OS Version: 4.9.12-moby
Architecture: amd64
JVM Version: 1.6.0_45-b06
JVM Vendor: Sun Microsystems Inc.
$ redis-server --version
Redis server v=3.2.7 sha=00000000:0 malloc=jemalloc-4.4.0 bits=64 build=4b4d638eb6ec5175
处理
使用jcoleman/tomcat-redis-session-manager工具为Apache Tomcat提供基于Redis的非粘性会话存储。
罐子获取
-
- tomcat-redis-session-manager-1.2-tomcat-6.jar
ここからダウンロードします。
commons-pool-1.6.jar
ここからダウンロードします。
jedis-2.0.0.jar
ここからダウンロードします。
罐子的设置
将下载的Jar文件放置在${CATALINA_HOME}/bin目录下。
配置更改
将以下内容添加到位于${CATALINA_HOME}/conf目录下的context.xml中。
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
host="${redis host}"
port="${redis port}"
/>
${redis host}: Redis的主机
${redis port}: Redis的端口
通过这样做,我们可以将Session持久化到Redis中。