关于自定义 redis session 的自动延期问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
polyang
V2EX    程序员

关于自定义 redis session 的自动延期问题

  •  
  •   polyang 2021-06-18 00:32:08 +08:00 2590 次点击
    这是一个创建于 1626 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一般情况下,用户 30 分钟没操作就会过期,那问题来了,我需要怎么自动延期呢?用户每次访问,我都到 redis 更新一下过期时间?这样的话对 redis 写操作会不会太频繁了点?
    各位大佬认为什么方案比较好?
    8 条回复    2021-06-18 17:12:09 +08:00
    yeqizhang
        1
    yeqizhang  
       2021-06-18 00:57:10 +08:00 via Android
    我觉得可以折中,不一定严格要求每次操作后半小时,你可以判断过期时间还剩下十几二十分钟的话再更新,超过 20 分钟就不更新,一般用户登陆后那几分钟操作才会比较频繁,然后实际最后操作时间到过期时间只有二十几分钟比半小时差几分钟,用户感知也不强。

    话说回来,一般采用 session 方案的会有多大的用户量呢,redis 还怕这点写操作?
    polyang
        2
    polyang  
    OP
       2021-06-18 01:11:46 +08:00
    @yeqizhang 嗯,这个方案不错,我觉得可以考虑,比如设定有效时间超过 25 分钟就不更新,小于等于 25 分钟时重新更新回 30 分钟,只差 5 分钟感知也不强。
    不过按照你说的,正常的用户量不是特别高的情况下,每次都更新过期时间也没什么,只不过我有点强迫症,觉得每次都更新的话有点……
    vibbow
        3
    vibbow  
       2021-06-18 02:30:37 +08:00
    那就在 redis 里把超时时间设为 1 个小时

    然后应用层判断有没有半个小时,再和 1 楼的方案结合一下。
    Oktfolio
        4
    Oktfolio  
       2021-06-18 03:36:07 +08:00
    Spring Session 每次请求更新过期时间。
    gaius
        5
    gaius  
       2021-06-18 09:54:47 +08:00
    鉴权接口给 session 续期
    ChoateYao
        6
    ChoateYao  
       2021-06-18 10:18:09 +08:00
    你有多少用户?这么快担忧到 redis 性能不够用?你没有实际因为 session 频繁写导致性能不够的场景,一切都是凭空想象出来的,那么你的优化也是凭空想象的。
    jenlors
        7
    jenlors  
       2021-06-18 16:03:03 +08:00
    不要过早优化,redis 真的撑不住了再说
    ERRASYNCTYPE
        8
    ERRASYNCTYPE  
       2021-06-18 17:12:09 +08:00
    结合一楼方法
    再不行,横向拓展,hash uid 分布处理
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     823 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 113ms UTC 22:12 PVG 06:12 LAX 14:12 JFK 17:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86