10

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

 4 years ago
source link: https://www.v2ex.com/t/784092
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

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

  polyang · 6 小时 49 分钟前 · 171 次点击
一般情况下,用户 30 分钟没操作就会过期,那问题来了,我需要怎么自动延期呢?用户每次访问,我都到 redis 更新一下过期时间?这样的话对 redis 写操作会不会太频繁了点?
各位大佬认为什么方案比较好?
4 条回复    2021-06-18 03:36:07 +08:00

yeqizhang

yeqizhang   6 小时 24 分钟前 via Android

我觉得可以折中,不一定严格要求每次操作后半小时,你可以判断过期时间还剩下十几二十分钟的话再更新,超过 20 分钟就不更新,一般用户登陆后那几分钟操作才会比较频繁,然后实际最后操作时间到过期时间只有二十几分钟比半小时差几分钟,用户感知也不强。

话说回来,一般采用 session 方案的会有多大的用户量呢,redis 还怕这点写操作?

polyang

polyang   6 小时 9 分钟前

@yeqizhang 嗯,这个方案不错,我觉得可以考虑,比如设定有效时间超过 25 分钟就不更新,小于等于 25 分钟时重新更新回 30 分钟,只差 5 分钟感知也不强。
不过按照你说的,正常的用户量不是特别高的情况下,每次都更新过期时间也没什么,只不过我有点强迫症,觉得每次都更新的话有点……

vibbow

vibbow   4 小时 50 分钟前

那就在 redis 里把超时时间设为 1 个小时

然后应用层判断有没有半个小时,再和 1 楼的方案结合一下。

Oktfolio

Oktfolio   3 小时 45 分钟前

Spring Session 每次请求更新过期时间。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK