若是英文不错的看,建议直接看官网吧,官网写的挺清楚。下面的内容是转载的一篇文章,本身补充了一些,供你们参考,也欢迎你们一块儿讨论前端
官方截止到2015-10-12前是不支持Tomcat8的,详情见官网:https://github.com/jcoleman/tomcat-redis-session-managerjava
锐洋智能修改的支持Tomcat8的 reyo.redis.session.manager.tomcat8nginx
修改的源代码:RedisSessionManager.javagit
@SuppressWarnings("deprecation")
private void initializeSerializer() throws ClassNotFoundException, IllegalAccessException, InstantiationException {
log.info("Attempting to use serializer :" + serializationStrategyClass);
serializer = (Serializer) Class.forName(serializationStrategyClass).newInstance();
Loader loader = null;
if (getContainer() != null) {
loader = getContainer().getLoader();
}
ClassLoader classLoader = null;
if (loader != null) {
classLoader = loader.getClassLoader();
}
serializer.setClassLoader(classLoader);
}github
修改后的内容web
private void initializeSerializer() throws ClassNotFoundException, IllegalAccessException, InstantiationException {
log.info("Attempting to use serializer :" + serializationStrategyClass);
serializer = (Serializer) Class.forName(serializationStrategyClass).newInstance();
Loader loader = null;
Context context = this.getContext();
if (context != null) {
loader = context.getLoader();
}
ClassLoader classLoader = null;
if (loader != null) {
classLoader = loader.getClassLoader();
}
serializer.setClassLoader(classLoader);
}redis
前提:你已经部署了Redis,还没有学会的略过tomcat
其实很简单,就几个步骤:
1.配置Tomcat的conf目录下的context.xml文件:服务器
1> 单点Reids配置session
<Valve className="reyo.redis.session.manager.tomcat8.RedisSessionHandlerValve" /> |
2> Sentinel集群配置:
<!-- Sentinel 配置 -->
<Valve className="reyo.redis.session.manager.tomcat8.RedisSessionHandlerValve" />
<Manager className="reyo.redis.session.manager.tomcat8.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" />
2.添加jar
3.测试
1>
存储Session:
|
2>重启Tomcat:假如Session保存在tomcat下,重启后Session不存在;若是保存在Redis下,Tomcat重启对Session无影响
3>取出Session:
|
注意事项:从Tomcat6开始默认开启了Session持久化设置,测试时能够关闭本地Session持久化,其实也很简单,在Tomcat的conf目录下的context.xml文件中,取消注释下面那段配置便可:
|
须要注意的是:
web.xml中的配置是有效的,即便是context.xml总配置maxInactiveInterval默认60秒,只要web.xml中的sessionConfig配置30分钟,则session的失效时间仍是30分钟。
运行效果图:
一:redis主从服务器
二:redis Sentinel集群(三台)
三:tomcat8.x 集群(两台)
Sentinel集群下的tomcat...
四:nginx做为前端服务器
五:网站运行效果图: