

























配置中所有 className 需指向实际的 RedisSessionManager 全类名(示例中为 reyo.redis.session.manager.tomcat9.RedisSessionManager),Valve 需配置 RedisSessionHandlerValve 用于请求后会话持久化。
<Context>
适配生产环境单机 Redis(指定密码、超时时间、数据库):
<Context>
<Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
host="192.168.1.100" <!-- Redis 服务器IP -->
port="6380"
适配 Redis 哨兵模式(主从 + 哨兵),需指定哨兵主节点名和哨兵列表:
<Context>
<Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
sentinelMaster="mymaster" <!-- 哨兵配置的主节点名称 -->
sentinels="192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379"
指定自定义序列化类(替代默认 JavaSerializer),并组合持久化策略:
<Context>
<Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
host="192.168.1.100"
port="6379"
password="redis@123"
serializationStrategyClass="com.custom.serializer.FastJsonSerializer" <!-- 自定义序列化类 -->
sessionPersistPolicies="SAVE_ON_CHANGE,ALWAYS_SAVE_AFTER_REQUEST"/>
注:自定义
serializationStrategyClass需实现reyo.redis.session.manager.tomcat9.Serializer接口。
适配分布式 Tomcat 集群(指定 JVM Route,配合负载均衡):
<Context jvmRoute="tomcat-node1">
| 参数名 | 作用 |
|---|---|
host |
Redis 单机地址(哨兵模式下无需配置) |
port |
Redis 端口(默认 6379) |
password |
Redis 认证密码(无则不配置) |
database |
Redis 数据库编号(默认 0) |
timeout |
Redis 连接超时时间(毫秒,默认 Protocol.DEFAULT_TIMEOUT=2000) |
sentinelMaster |
Redis 哨兵主节点名称(哨兵模式必填) |
sentinels |
哨兵节点列表,逗号分隔(如:ip1:port1,ip2:port2) |
serializationStrategyClass |
序列化实现类全类名(默认 JavaSerializer) |
sessionPersistPolicies |
会话持久化策略: - DEFAULT:默认策略 - SAVE_ON_CHANGE:属性变更立即保存 - ALWAYS_SAVE_AFTER_REQUEST:请求结束强制保存(可组合,逗号分隔) |
jvmRoute |
Tomcat 集群节点标识(会话 ID 后缀,避免集群会话冲突) |
lib 目录;RedisSessionHandlerValve 必须配置,否则请求结束后会话无法持久化到 Redis;host/port 配置会被忽略,以 sentinelMaster/sentinels 为准;此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。