写点什么

JWT 本无状态,为何却要存储在 Redis 破坏其无状态特性?

作者:知识浅谈
  • 2022 年 9 月 16 日
    吉林
  • 本文字数:620 字

    阅读完需:约 2 分钟

JWT本无状态,为何却要存储在Redis破坏其无状态特性?

🍁 作者:知识浅谈,CSDN 博客专家,阿里云签约博主,InfoQ 签约博主,华为云云享专家

📌 擅长领域:全栈工程师、爬虫、ACM 算法

💒 公众号:知识浅谈


🤞拿下,拿下🤞

🎈JWT 优点?JWT 为什么存客户端

JWT:先来说一下这是什么吧,JavaWebToken,可以得知这是一种 token。



组成结构:JWT 一共由三部分组成,Header 的 Base64 编码,Payload 的 Base64 编码,加密算法(Header+Payload+secret)的 Base64 编码。Header:包含 token 类型,加密算法。Payload:用户名,权限等非敏感信息。Signature:加密算法(Header+Payload+secret)的 Base64 编码


JWT 优点:无状态,自身包含身份验证所需信息,使得后端不用存储 Session 信息。


JWT 缺点:无法主动失效。无法主动续期。


一般 JWT 中包含了相应的用户信息,不需要在服务端存储,只需要登陆的时候携带验证即可,当然如果为了解决 JWT 自动续期的问题,我们往往存储在 redis 中,显然破坏了无状态在分布式服务器中的优势。

🎈使用 redis 目的是什么?

Redis:是一个 Key-Value 的键值对结构。



用处:常用于存储热点数据,如点赞数,评论,排行榜等数据,用户登录 token 等数据。因为 Redis 中的数据是存储在内存中的,所以存取效率比较高,相比于 Mysql 中的数据,Redis 中数据的存取更高效。虽然是单线程但是速度缺很快,主要是因为以下几个方面:


  1. 数据存储在内存中。

  2. 采用 IO 多路复用原则

  3. 单线程,省去上下文切换花费的时间。其实 Redis 中的事件主要花费在 IO 上,其处理的事件往往不是很长。

🍚总结

以上关于 JWT 和 Redis 使用的部分说明,希望有所帮助。

发布于: 刚刚阅读数: 3
用户头像

知识浅谈

关注

公众号:知识浅谈 2022.06.22 加入

🍁 作者:知识浅谈,InfoQ签约作者,CSDN博客专家/签约讲师,华为云云享专家,阿里云签约博主 📌 擅长领域:全栈工程师、爬虫、ACM算法 💒 公众号:知识浅谈 🔥 联系方式vx:zsqtcc

评论

发布
暂无评论
JWT本无状态,为何却要存储在Redis破坏其无状态特性?_JWT_知识浅谈_InfoQ写作社区