我的tomcat+redis实现session共享配置之路
2016-07-21 11:25
435 查看
1、网上查找资料,大部分从下面网址下载java代码,因是几年前实现的(大概2,3年前吧),不支持tomcat8
https://github.com/jcoleman/tomcat-redis-session-manager
2、在myeclipse 新建一个maven项目【maven-archetype-quickstart】
源文件新建包名com.orangefunction.tomcat.redissessions
讲下载下来的java类拷贝到该包之下(这些java类只实现tomcat7,实现tomcat8需要做一些修改)
JavaSerializer.java
RedisSession.java
RedisSessionHandlerValve.java
RedisSessionManager.java
Serializer.java
SessionSerializationMetadata.java
3、tomcat8与tomcat7 有些实现代码不一样,需各自新建一个maven项目要各自打包,注意tomcat引得版本与jdk要保持一致
====tomcat8 maven pom.xml====
====tomcat7 maven pom.xml====
将打包出来的tomcat-redis的jar包和
jedis-2.7.2.jar
commons-pool2-2.3.jar
拷贝到tomcat的lib文件夹下面
4、tomcat配置
====tomcat context.xml====
5、需要特别注意的是项目中要存入session的对象必须实现序列化,否知会出现序列化错误
配置截图:
参考网址:
redis + Tomcat 8 的session共享解决
http://www.cnblogs.com/interdrp/p/4868740.html
Tomcat7+Redis存储Session
http://blog.csdn.net/caiwenfeng_for_23/article/details/45666831
用Redis存储Tomcat集群的Session
http://blog.csdn.net/chszs/article/details/42610365
分布式集群系统下的高可用session解决方案
http://tendyming.iteye.com/blog/1815136
https://github.com/jcoleman/tomcat-redis-session-manager
2、在myeclipse 新建一个maven项目【maven-archetype-quickstart】
源文件新建包名com.orangefunction.tomcat.redissessions
讲下载下来的java类拷贝到该包之下(这些java类只实现tomcat7,实现tomcat8需要做一些修改)
JavaSerializer.java
RedisSession.java
RedisSessionHandlerValve.java
RedisSessionManager.java
Serializer.java
SessionSerializationMetadata.java
3、tomcat8与tomcat7 有些实现代码不一样,需各自新建一个maven项目要各自打包,注意tomcat引得版本与jdk要保持一致
====tomcat8 maven pom.xml====
<dependencies> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-catalina</artifactId> <version>8.0.33</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <!-- 打jar包 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.0</version> <configuration> <!-- 源代码编译版本 --> <source>1.8</source> <!-- 目标平台编译版本 --> <target>1.8</target> <!-- 字符集编码 --> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>
====tomcat7 maven pom.xml====
<dependencies> <!-- tomcat7 source1.7 --> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-catalina</artifactId> <version>7.0.27</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <!-- 打jar包 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.0</version> <configuration> <!-- 源代码编译版本 --> <source>1.7</source> <!-- 目标平台编译版本 --> <target>1.7</target> <!-- 字符集编码 --> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>
将打包出来的tomcat-redis的jar包和
jedis-2.7.2.jar
commons-pool2-2.3.jar
拷贝到tomcat的lib文件夹下面
4、tomcat配置
====tomcat context.xml====
<!-- com.orangefunction.tomcat.redissessions 是自定义maven项目的报名路径,切需要与maven 中 RedisSessionManager的serializationStrategyClass值一致 --> <!-- redis session 共享配置 --> <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" host="127.0.0.1" port="6379" database="0" maxInactiveInterval="60" /> <!-- 集群配置 还未进行验证--> <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" maxInactiveInterval="60" sentinelMaster="mymaster" sentinels="127.0.0.1:26379,127.0.0.1:26380,127.0.0.1:26381,127.0.0.1:26382" />
5、需要特别注意的是项目中要存入session的对象必须实现序列化,否知会出现序列化错误
public class Test implements Serializable { private static final long serialVersionUID = 5021582410009851677L; ...... }
配置截图:
参考网址:
redis + Tomcat 8 的session共享解决
http://www.cnblogs.com/interdrp/p/4868740.html
Tomcat7+Redis存储Session
http://blog.csdn.net/caiwenfeng_for_23/article/details/45666831
用Redis存储Tomcat集群的Session
http://blog.csdn.net/chszs/article/details/42610365
分布式集群系统下的高可用session解决方案
http://tendyming.iteye.com/blog/1815136
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- i-jetty环境搭配与编译
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 实现单Tomcat多Server配置
- 生产环境下的Tomcat配置
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- redis安装问题小结
- Linux部署Tomcat服务器
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器