[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 编码查看转换 | 代码下载 | 常见问题及讨论 | Python游戏编程讨论 | 《深入解析ASP核心技术》 | Python游戏编程教程 | AI图片生成
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]session共享,redisson配置问题。

上一篇:[备忘]netty,ChunkedFile,channelInactive()时没有释放file引用,导致文件删除不掉。
下一篇:没有了

添加日期:2025/12/9 11:31:29 快速返回   返回列表 阅读8次
现象:A机登录,跳转后,有概率还显示登录页面。刷新后可进入系统。
怀疑是session共享,写入过慢导致。
---------------------------
配置如下:
<Manager 
    readMode="MEMORY"      <!-- 优先从本地内存读取 -->
    updateMode="AFTER_REQUEST" <!-- 默认请求结束后才同步到Redis -->
    broadcastSessionEvents="true"/> <!-- 启用事件广播 -->
---------------------------
用户请求 → 
1. 检查本地内存是否有session数据
   ↓
2. 如果本地有 → 直接返回(快速)
   ↓
3. 如果本地没有 → 从Redis加载 → 存入本地内存 → 返回
---------------------------
Session.setAttribute() → 
1. 先修改本地内存
   ↓
2. 如果是updateMode="AFTER_REQUEST" → 请求结束后才异步写入Redis
   ↓
3. 如果是updateMode="IMMEDIATE" → 立即同步到Redis
---------------------------
Tomcat1 更新 session → 本地内存 + Redis + 发布事件
Tomcat2 收到事件 → 使本地对应 session 失效
Tomcat2 下次读取 → 发现本地失效 → 从 Redis 重新加载
---------------------------

# 配置1:偏向性能(适合门户网站)
readMode: "MEMORY"
updateMode: "AFTER_REQUEST"  # 异步写入
broadcastSessionEvents: true

# 配置2:偏向一致性(适合电商交易)
readMode: "REDIS"            # 总是读取最新
updateMode: "IMMEDIATE"      # 同步写入

# 配置3:平衡方案(大多数场景)
readMode: "MEMORY"
updateMode: "IMMEDIATE"      # 写入立即同步
broadcastSessionEvents: true # 更新通知其他节点
---------------------------

<Manager className="org.redisson.tomcat.RedissonSessionManager"
         configPath="conf/redisson.conf" 
         readMode="REDIS" 
         updateMode="IMMEDIATE"
         broadcastSessionEvents="false"
         keyPrefix="xxx"/>
 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved