1. 关键词
web应用:即使用tomcat发布的web项目,本文的中以myweb为例。
2. tomcat 8.x
§2.1 jar包
-
tomcat\lib:
redisson-all-3.6.4.jar
redisson-tomcat-8-3.6.4.jar
-
tomcat\webapps\myweb\WEB-INF\lib\:
commons-pool2-2.5.0.jar
jedis-2.9.0.jar
§2.2 配置文件
-
server.xml
<Resource auth="Container" closeMethod="shutdown" configPath="${catalina.base}/conf/redisson.json" factory="org.redisson.JndiRedissonFactory" name="bean/redisson"/>
-
context.xml
<Manager broadcastSessionEvents="false" className="org.redisson.tomcat.RedissonSessionManager" configPath="${catalina.base}/conf/redisson.json" readMode="REDIS" updateMode="DEFAULT" />
-
redisson.json
修改文件内容即可,文档可参考https://yq.aliyun.com/articles/551642/。
路径:tomcat\conf
内容:
{
"singleServerConfig":{
"idleConnectionTimeout":10000,
"pingTimeout":1000,
"connectTimeout":10000,
"timeout":3000,
"retryAttempts":3,
"retryInterval":1500,
"reconnectionTimeout":3000,
"failedAttempts":3,
"password":"mypass",
"subscriptionsPerConnection":5,
"clientName":null,
"address": "redis://192.168.1.100:6379",
"subscriptionConnectionMinimumIdleSize":1,
"subscriptionConnectionPoolSize":50,
"connectionMinimumIdleSize":32,
"connectionPoolSize":64,
"database":0,
"dnsMonitoring":false,
"dnsMonitoringInterval":5000
},
"threads":0,
"nettyThreads":0,
"codec":{
"class":"org.redisson.codec.JsonJacksonCodec"
},
"transportMode":"NIO"
}
§2.3 程序改造说明
-
放入session的对象需要实现序列化(implements java.io.Serializable),且需要放置到attribute中
-
操作容器对象增删改后,需要重新set到attribute中
§2.4 redisson序列化配置类
编码类名称 |
说明 |
org.redisson.codec.JsonJacksonCodec |
Jackson JSON 编码默认编码 |
org.redisson.codec.AvroJacksonCodec |
Avro 一个二进制的JSON编码 |
org.redisson.codec.SmileJacksonCodec |
Smile 另一个二进制的JSON编码 |
org.redisson.codec.CborJacksonCodec |
CBOR又一个二进制的JSON编码 |
org.redisson.codec.MsgPackJacksonCodec |
MsgPack 再来一个二进制的JSON编码 |
org.redisson.codec.IonJacksonCodec |
Amazon Ion 亚马逊的Ion编码,格式与JSON类似 |
org.redisson.codec.KryoCodec |
Kryo 二进制对象序列化编码 |
org.redisson.codec.SerializationCodec |
JDK序列化编码 |
org.redisson.codec.FstCodec |
FST 10倍于JDK序列化性能而且100%兼容的编码 |
org.redisson.codec.LZ4Codec |
LZ4 压缩型序列化对象编码 |
org.redisson.codec.SnappyCodec |
另一个压缩型序列化对象编码 |
org.redisson.client.codec.JsonJacksonMapCodec |
基于Jackson的映射类使用的编码。可用于避免序列化类的信息,以及用于解决使用 byte[] 遇到的问题。 |
org.redisson.client.codec.StringCodec |
纯字符串编码(无转换) |
org.redisson.client.codec.LongCodec |
纯整长型数字编码(无转换) |
org.redisson.client.codec.ByteArrayCodec |
字节数组编码 |
org.redisson.codec.CompositeCodec |
用来组合多种不同编码在一起 |
|
|
3. tomcat 7.x
§3.1 jar包
-
tomcat\lib:
tomcat7-redis-session-manager-2.0.0.jar
-
tomcat\webapps\myweb\WEB-INF\lib\(或tomcat\lib):
commons-pool2-2.5.0.jar
jedis-2.9.0.jar
§3.2 配置文件
-
context.xml
新增manager节点:
<Value className="com.oragenfunction.tomcat.redissessions.RedisSessionHandlerValue" />
<Manager className="com.oragenfunction.tomcat.redissessions.RedisSessionManager" host="192.168.1.100" port="6379" database="0" password="mypass" maxInactiveInterval="60" />
4. spring整合(tomcat7.x)
§4.1 jar包
commons-pool2-2.5.0.jar
jedis-2.9.0.jar
spring-data-redis-1.5.2.RELEASE.jar
spring-session-1.2.0.RELEASE.jar
§4.2 配置文件
-
applicationContext.xml
<bean id="redisHttpSessionConfiguration" class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
<property name="maxInactiveIntervalInSeconds" value="600"/>
</bean>
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="100" />
<property name="maxIdle" value="10" />
</bean>
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" destroy-method="destroy">
<property name="hostName" value="192.168.1.100"/>
<property name="port" value="6379"/>
<property name="password" value="mypass" />
<property name="timeout" value="3000"/>
<property name="usePool" value="true"/>
<property name="poolConfig" ref="jedisPoolConfig"/>
</bean>
注意:由于使用了这里的配置,由redis负责接管Session,原来web.xml里配置的Session超时时间就会失效了
-
web.xml
<!-- Spring Session Redis 共享需要放在filter的第一个 -->
<filter>
<filter-name>springSessionRepositoryFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSessionRepositoryFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
注意:这个filter要写在比较靠前的第一个的位置
相关推荐
当我们谈论"Tomcat+Redis依赖包"时,意味着在Tomcat服务器中引入Redis作为会话管理工具,以实现更高效、可扩展的会话存储。 `Redis`作为一个内存数据结构存储系统,可以快速读取和写入数据,特别适合用来存储像用户...
总结起来,Tomcat-Redis-Session-Manager通过整合Redis和Tomcat,实现了高效、可靠的session管理,特别适用于需要处理高并发和分布式部署的Web应用。其提供的jar包简化了集成过程,让开发者能快速地在Tomcat7和...
总结来说,"tomcat-redis依赖jar包"涉及到的是将Tomcat应用服务器与Redis缓存系统整合的过程,包括连接器选择、配置、缓存策略、性能优化、安全措施以及监控与故障排查等多个方面。正确地集成和使用这些jar包,能够...
标题 "Tomcat和Redis整合jar包" 暗示了我们正在讨论如何将流行的Java Web服务器Tomcat与高性能的键值存储系统Redis相结合,以便在Web应用中利用Redis的缓存和数据持久化功能。这通常涉及到在Tomcat环境中添加必要的...
在构建高性能、高可用性的Web应用系统时,整合Apache Tomcat、Nginx以及Redis作为会话管理器是一个常见的选择。这个"tomcat-redis-session-manager tomcat+nginx+redis集群所需jar"压缩包提供了在这样的架构中实现...
包含: 1、apache-tomcat-7.0.41-windows-x64免安装 2、Redis-x64-3.2.100.msi ...3、tomcat-cluster-redis-session-manager tomcat session所需的jar包 4、getsession.jsp 和setsession.jsp 测试session设置和获取
为了整合Redis和Tomcat,我们需要解决的主要问题是如何将session数据存储到Redis中,以实现session的共享和持久化。这里的关键在于使用一个名为"Session Manager"的组件,它负责在用户session创建、更新和销毁时与...
《Tomcat与Redis整合:基于Redis的Session管理》 在Web应用开发中,Session管理是不可或缺的一环。Session主要用于在用户浏览器与服务器之间保持状态,存储用户的登录信息、购物车等临时数据。然而,传统的Session...
将Redis与Tomcat整合,可以将Session数据存储在Redis中,实现Session的分布式管理。这样,即使在多台Tomcat服务器之间进行负载均衡,用户的Session信息也能保持一致,提高了系统的可扩展性和可用性。 **4. 集成步骤...
tomcat7环境下亲测有效的session共享jar,tomcat集群整合redis必备jar包之一.session共享
通过这种方式,Tomcat与Redis的整合能提供以下优势: - **高可用性**:由于会话数据存储在Redis中,即使某台服务器宕机,其他服务器也能无缝接管会话。 - **可扩展性**:随着应用规模的增长,可以通过增加更多的...
本篇文章将深入讲解如何在Tomcat7中整合Redis,以实现session的共享,并提供必要的jar包配置方法。 首先,理解session共享的重要性:在单个服务器上,session信息存储在服务器的内存中,用户在与服务器交互时,会话...
标题“tomcat+redis依赖包(centos)”表明这是一个针对CentOS操作系统的解决方案,整合了Tomcat与Redis的服务,可能是为了实现更高效的会话管理。在Java Web应用中,Tomcat处理HTTP请求并运行Servlet和JSP,而Redis...
而Tomcat Redis Session Manager则整合两者,实现会话的持久化存储和跨服务器共享。在实际部署时,需要配置Tomcat的相关参数,如Redis服务器地址、端口、超时时间等,以确保会话管理的正确运行。
标题 "tomcat-redis-session.rar" ...综上所述,"tomcat-redis-session.rar"可能包含的资源可能包括配置文件示例、代码片段、教程文档等,帮助开发者理解并实现Tomcat与Redis的整合,以提高Web应用的可扩展性和可靠性。
标题中的“tomcat redis整合”指的是将Redis缓存系统与Apache Tomcat服务器集成,以便提高Web应用程序的性能和数据处理能力。Redis是一个开源的、基于内存的数据结构存储系统,常用于数据库、缓存和消息中间件的角色...
《深入理解Tomcat-Redis-Session-Manager:与Tomcat7的整合及源码解析》 在现代Web应用中,由于高并发、分布式部署的需求,单一服务器的session管理已无法满足需求。这时,将session存储在外部存储系统,如Redis,...
总的来说,通过整合Nginx、Tomcat和Redis-Cluster,我们可以实现高效的分布式环境下的Session同步,保证用户体验的连续性和一致性,同时降低了单点故障的风险。提供的jar包是实现这一目标的关键组件,它们共同确保了...
《Tomcat与Redis整合实现Session共享详解》 在分布式系统中,Session共享是一个常见的需求,尤其是在基于Java的Web应用中,Tomcat作为常用的Servlet容器,如何有效地管理并共享用户Session信息是一个重要的议题。...
**Tomcat与Redis整合** 1. **添加依赖**: 在Tomcat的web应用的`WEB-INF/lib`目录下添加Redis客户端库,如Jedis。Jedis是Java语言编写的Redis客户端,提供了一套完整的API来操作Redis服务器。 2. **配置Context**: ...