科学健康资讯 · 内容仅供参考,不替代专业诊疗 联系我们|疾病百科
操作系统

session 失效(session失效跳转到登录页面)

2023-06-06 操作系统 本文链接

这个话题遇到无数次了,鉴权是session+cookie、token+redis、jwt、jwt+redis哪种好?我想这个话题能讨论一个世纪,争议最多的还是token过期、跨端、设备登出、单点登录等场景的问题,其实,都可以满足,可能有些方案感觉有点奇怪而已,技术论剑,一些朋友犯不着急眼。

我觉得大家核算一下,哪个容易搞,哪个成本可控,按划算的来呗,工具而已,毕竟我们的甲方是有预算的,可不能怠慢了“上帝”,更何况我们大多项目几乎不是做淘宝平台吧!

所以,大家采用哪种方案居多?[奸笑]

#职场直言##程序员那些事##职场达人上头条##程序员#

几年前,我去一家公司面试java,面试官问我关于redis持久化的两种方式的区别。

我说让我深入的去聊的话,我聊不出来,因为在我看来,redis做持久化是完全没有意义的事情,所以我也没有必要去深入的去了解。

首先我们要知道redis持久化的意义是什么,就是为了保证在redis宕机的时候,数据不会丢失,但是我们存储到redis的数据,真的因为宕机而丢失了,会对我们带来哪些影响呢?下面我们就从我们存储到redis的不同种类的数据进行分析,看看是否有影响。

1.分布式session,这种数据丢失了,是没有影响的,最多用户在重新登陆一次就好了。

2.验证码,这种数据丢失了,也没啥影响,用户在重新获取一次就好了。

3.分布式锁,分布式锁的过期时间都比较短,最多不会超过5秒钟,你从redis宕机到恢复的过程中,会远远的超过这个时间,等你恢复好了,key早就过期了,所以这种数据也没有啥恢复的必要。

4.幂等性的防重检验,但是在redis层的检验,只是第一层检验,即使redis没有检验住,后面还有数据库的唯一约束的机制做兜底呢,所以影响也不大,当然了,有人可能会说,你这样把所有请求都打到数据库了,会造成缓存雪崩,但是我们在用redis的时候,通常都会做集群,集群的一个节点宕机,也只是一小部分数据丢失了,不会造成雪崩。当然了,你如果说所有节点都宕机了,那就等所有几点都恢复后,做一次缓存预热,问题也不大。

5.数据缓存,这种数据即使在缓存里丢失了,但是在数据库里还是存在了,也没问题,缓存雪崩的问题也不会出现,原因还是如第四点所说。

综上所述来看,redis里的数据丢失,是完全不会有影响的,所以做持久化,其实是没有任何必要的。

面试官听完我的回答后,露出了让人感觉不太满意的表情,可能对我的回答不太满意,这次面试也没有了结果。但是我还是坚持我的看法。

大家怎么看这个问题呢,欢迎评论区留言讨论[握手]

本文内容仅供健康科普参考,不能替代专业医疗诊断和治疗建议。如有身体不适,请及时就医并遵从医师指导。

相关阅读