您的位置:首页 > 数据库 > Redis

Tomcat7 redis session共享

2017-01-04 00:00 531 查看
摘要: 通过redis和SessionManager来实现多台Tomcat之间的session共享

这种方式是通过修改tomcat目录下的配置文件来实现对台tomcat之间的session共享,这里需要几个jar包,并讲他们添加到tomcat的lib目录下去,分别为:tomcat-redis-session-manager、jedis-2.7.2.jar、commons-pool2-2.8.0.jar

###1、下载tomcat-redis-session的源码并编译打包
这是一个歪果仁写的工具,目前只支持jdk1.7和tomcat7,作者比较忙,暂时不支持jdk8和tomcat8。

github地址为:https://github.com/jcoleman/tomcat-redis-session-manager

新建maven项目,并将src下的代码copy过去,配置一下pom.xml即可,很简单。



编译后,将其打成jar包,放入tomcat的lib文件夹下。

###2、下载redis并启动(这里使用windows版本)
redis官方只支持linux版本,不支持windows,这里要使用github上的

Windows下Redis的安装使用

###3、配置tomcat\conf下的context.xml文件
多个tomcat的配置都一致,把配置都copy到对应的其他tomcat下;如果在一台机器上进行测试,记得对各个tomcat的端口进行修改

<?xml version='1.0' encoding='utf-8'?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- tomcat-redis-session共享配置 -->
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60" />
</Context>

###4、把session.jsp页面丢到每个tomcat的ROOT目录下,session.jsp的内容如下:

SessionID:<%=session.getId()%> <BR>
SessionIP:<%=request.getServerName()%> <BR>
SessionPort:<%=request.getServerPort()%>

###5、启动Tomcat,并访问session.jsp页面



如上图所示,访问两台不同的tomcat,取得的sessionId是同一个,表示session共享成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis tomcat session共享