reyo.redis.session.manager.tomcat9.RedisSessionManager 调用说明

1. 基本配置示例

使用默认的 JavaSerializer

xml
<Context>
    <Valve className="reyo.redis.session.manager.tomcat9.RedisSessionHandlerValve" />
    <Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
             host="localhost"
             port="6379"
             database="0"
             password="123456"/>
</Context>

显式指定 JavaSerializer

xml
<Context>
    <Valve className="reyo.redis.session.manager.tomcat9.RedisSessionHandlerValve" />
    <Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
             host="localhost"
             port="6379"
             database="0"
             password="123456"
             serializerClass="reyo.redis.session.manager.tomcat9.JavaSerializer"/>
</Context>

使用 JSON Serializer

xml
<Context>
    <Valve className="reyo.redis.session.manager.tomcat9.RedisSessionHandlerValve" />
    <Manager className="reyo.redis.session.manager.manager.tomcat9.RedisSessionManager"
             host="localhost"
             port="6379"
             database="0"
             password="123456"
             serializerClass="reyo.redis.session.manager.tomcat9.JsonSerializer"/>
</Context>

2. 完整功能配置示例

生产环境推荐配置

xml
<Context>
    <Valve className="reyo.redis.session.manager.tomcat9.RedisSessionHandlerValve" />
    <Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
             host="redis-cluster.example.com"
             port="6379"
             database="0"
             password="${redis.password}"
             timeout="5000"
             maxInactiveInterval="30"
             sessionPersistPolicies="SAVE_ON_CHANGE,ALWAYS_SAVE_AFTER_REQUEST"
             serializerClass="reyo.redis.session.manager.tomcat9.JsonSerializer"/>
</Context>

高可用 Sentinel 配置

xml
<Context>
    <Valve className="reyo.redis.session.manager.tomcat9.RedisSessionHandlerValve" />
    <Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
             sentinelMaster="mymaster"
             sentinels="sentinel1.example.com:26379,sentinel2.example.com:26379,sentinel3.example.com:26379"
             password="${redis.password}"
             database="0"
             timeout="3000"
             maxInactiveInterval="60"
             sessionPersistPolicies="ALWAYS_SAVE_AFTER_REQUEST"
             serializerClass="reyo.redis.session.manager.tomcat9.JavaSerializer"/>
</Context>

开发环境配置

xml
<Context>
    <Valve className="reyo.redis.session.manager.tomcat9.RedisSessionHandlerValve" />
    <Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
             host="127.0.0.1"
             port="6379"
             database="1"
             timeout="2000"
             maxInactiveInterval="0"
             sessionPersistPolicies="DEFAULT"
             serializerClass="reyo.redis.session.manager.tomcat9.JsonSerializer"/>
</Context>

3. 高级配置示例

自定义序列化器(如果您创建了新的序列化器)

xml
<Context>
    <Valve className="reyo.redis.session.manager.tomcat9.RedisSessionHandlerValve" />
    <Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
             host="localhost"
             port="6379"
             database="0"
             serializerClass="com.yourcompany.custom.YourCustomSerializer"/>
</Context>

性能优化配置

xml
<Context>
    <Valve className="reyo.redis.session.manager.tomcat9.RedisSessionHandlerValve" />
    <Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
             host="redis-performance.example.com"
             port="6379"
             database="0"
             password="${redis.password}"
             timeout="1000"
             maxInactiveInterval="15"
             sessionPersistPolicies="SAVE_ON_CHANGE"
             serializerClass="reyo.redis.session.manager.tomcat9.JavaSerializer"/>
</Context>

安全强化配置

xml
<Context>
    <Valve className="reyo.redis.session.manager.tomcat9.RedisSessionHandlerValve" />
    <Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
             host="redis-secure.example.com"
             port="6379"
             database="0"
             password="${redis.secure.password}"
             timeout="5000"
             maxInactiveInterval="5"
             sessionPersistPolicies="ALWAYS_SAVE_AFTER_REQUEST"
             serializerClass="reyo.redis.session.manager.tomcat9.JsonSerializer"/>
</Context>

4. 集群部署配置示例

多节点负载均衡

xml
<!-- 节点1 -->
<Context>
    <Valve className="reyo.redis.session.manager.tomcat9.RedisSessionHandlerValve" />
    <Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
             host="redis-node1.example.com"
             port="6379"
             database="0"
             password="${redis.password}"
             serializerClass="reyo.redis.session.manager.tomcat9.JsonSerializer"/>
</Context>

<!-- 节点2 -->
<Context>
    <Valve className="reyo.redis.session.manager.tomcat9.RedisSessionHandlerValve" />
    <Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
             host="redis-node2.example.com"
             port="6379"
             database="0"
             password="${redis.password}"
             serializerClass="reyo.redis.session.manager.tomcat9.JsonSerializer"/>
</Context>

5. 配置参数说明

 
参数名说明示例值
serializerClass 序列化器类名 reyo.redis.session.manager.tomcat9.JsonSerializer
host Redis 主机地址 localhost, 127.0.0.1
port Redis 端口 6379
database Redis 数据库编号 0
password Redis 密码 your_password
timeout 连接超时(毫秒) 2000
maxInactiveInterval 会话过期时间(分钟) 30
sessionPersistPolicies 持久化策略 SAVE_ON_CHANGE,ALWAYS_SAVE_AFTER_REQUEST
sentinelMaster Sentinel 主节点名 mymaster
sentinels Sentinel 节点列表 host1:26379,host2:26379

6. 持久化策略说明

可用策略组合:

  • DEFAULT - 默认策略

  • SAVE_ON_CHANGE - 属性变更时立即保存

  • ALWAYS_SAVE_AFTER_REQUEST - 请求结束后总是保存

  • SAVE_ON_CHANGE,ALWAYS_SAVE_AFTER_REQUEST - 组合策略

7. 环境变量配置示例

xml
<Context>
    <Valve className="reyo.redis.session.manager.tomcat9.RedisSessionHandlerValve" />
    <Manager className="reyo.redis.session.manager.tomcat9.RedisSessionManager"
             host="${REDIS_HOST:localhost}"
             port="${REDIS_PORT:6379}"
             database="${REDIS_DB:0}"
             password="${REDIS_PASSWORD:}"
             serializerClass="${SERIALIZER_CLASS:reyo.redis.session.manager.tomcat9.JsonSerializer}"/>
</Context>

配置建议

  1. 开发环境:推荐使用 JsonSerializer,便于调试

  2. 生产环境:根据性能需求选择 JavaSerializer(性能好)或 JsonSerializer(可读性好)

  3. 高并发场景:使用 JavaSerializer + SAVE_ON_CHANGE 策略

  4. 数据安全场景:使用 ALWAYS_SAVE_AFTER_REQUEST 确保数据一致性

选择哪种配置取决于您的具体需求:性能、可调试性、数据一致性要求等。

posted @ 2025-10-24 06:06  锐洋智能  阅读(0)  评论(0)    收藏  举报