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依赖jar包
Tomcat和Redis整合jar包
tomcat7环境下亲测有效的session共享jar,tomcat集群整合redis必备jar包之一.session共享
redis整合tomcat共享session所需的jar包
redis整合tomcat所需jar包
多项目搭建实现session共享,jar包带配置方法都在里面
同一个应用在运行多个tomcat实例的时候,经常需要共享Session。利用Redis第三方缓存进行配置; 生产环境一般会使用了redis,...包含tomcat7和tomcat8的jar还有相关引用的 pool12包和jedis2.9.1包 整合成最全的jar包下载
tomcat7整合redissession管理,适用tomcat7,具体可参照https://blog.csdn.net/github_39577257/article/details/80833704
NULL 博文链接:https://java-007.iteye.com/blog/2316436
项目由maven构建,使用springMVC整合了Redis的集群,发布到tomcat中,访问http://localhost:8080/SpringRedisCluster/redis/hello.do测试即可,前提是配好了redis的集群。
支持tomcat7、tomcat8整合redis集群,最终实现session共享,亲测可用,积分少,不坑人
redis整合到tomcat集群的支持,此jar包只支持tomcat7及以前版本
tomcat8整合redis进行session-manager,贡大家学习使用,可参照一下https://blog.csdn.net/github_39577257/article/details/80833704
本资源已经在tomcat7亲测!本资源已经在tomcat7亲测!
目录 一、部署启动多个tomcat 2 1、背景 2 2、部署多个tomcat 2 二、nginx配置及启用 3 1、nginx的下载和启动 3 2、nginx配置文件 4 3、使用nginx负载均衡 5 ...2、redis和spring整合实现二级缓存 20
redis服务器单机版和集群版,成功完整搭建所需整合包,本人已成功安装
Redisson通过重定义Session相关类方法的方式实现Session到Redis的存储,一般无需修改现有程序中的Session相关操作代码,即可实现使用Redis共享存储多个Tomcat的Session,程序改造成本较小。具体信息详见本资源中的...
Spring-Boot-Redis-Session Spring Boot整合Redis,详情请查看依赖Spring Boot依赖(创建项目时选择) Sprint Boot2.1.5.RELEASE由于spring-boot-starter-parent 2.1.5.RELEASE中的会话需要安全性支持,故此需要约会...
Redis_Servlet3,必须在Tomcat7下运行,实现了推送,Redis上网下一个,配置好Redis就行,配置文件为Redis.properties,推送可以使用Redis客户端推送,目前只做出订阅功能。属于DEMO
jdk1.8,其中用到redis存储tickets,使用了代理模式、restful、自定义用户验证等,由于文件大小的限制,client1和casproxy只有应用,把其解压后下面的目录拷贝到tomcat下的webapp即能使用,如果没有redis需要修改...