关于session过期的问题
来源:3-16 api之session处理与实现(下)
remembers
2020-03-18
func IsSessionExpired(sid string) (string, bool) {
v, ok := sessionMap.Load(sid)
if ok {
// ...
} else {
// 去 DB 里面找 sid
}
}
老师,如上述代码所示,在 map 里面找不到 sid 就去 DB 里面找。
请问,是什么原因会造成 map 里没有 sid 反而 DB 里存在 sid 呢?
正常情况 map 里删掉 sid ,那么 DB 里应该也跟着删掉了。
( 这段代码在课程里没有写,我是看到课程源码里有,所以感到困惑。)
写回答
1回答
-
造成map没有的情况太多了。
集群部署下,一个新用户多次打到多个不同的api节点上就会出现当前节点的map里没有sid
api节点重启时,当前节点就没有sid
各种原因导致的写入失败
112020-03-22
相似问题