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

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 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使用的部分说明,希望有所帮助。

相关文章
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(一)
数据的存储--Redis缓存存储(一)
437 1
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
157 2
数据的存储--Redis缓存存储(二)
|
5月前
|
消息中间件 NoSQL Unix
Redis的基本特性以及其基础命令用法
这只是冰山一角,Redis的强大功能和简洁的操作方法值得我们深入了解和掌握,是复杂数据问题解决的有力工具。所以,来一场有趣的Redis冒险吧!
182 6
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
211 6
|
7月前
|
存储 NoSQL 算法
Redis分片集群中数据是怎么存储和读取的 ?
Redis集群采用的算法是哈希槽分区算法。Redis集群中有16384个哈希槽(槽的范围是 0 -16383,哈希槽),将不同的哈希槽分布在不同的Redis节点上面进行管理,也就是说每个Redis节点只负责一部分的哈希槽。在对数据进行操作的时候,集群会对使用CRC16算法对key进行计算并对16384取模(slot = CRC16(key)%16383),得到的结果就是 Key-Value 所放入的槽,通过这个值,去找到对应的槽所对应的Redis节点,然后直接到这个对应的节点上进行存取操作
|
10月前
|
存储 消息中间件 监控
Redis Stream:实时数据流的处理与存储
通过上述分析和具体操作示例,您可以更好地理解和应用 Redis Stream,满足各种实时数据处理需求。
803 14
|
11月前
|
存储 NoSQL 算法
Redis分片集群中数据是怎么存储和读取的 ?
Redis集群采用哈希槽分区算法,共有16384个哈希槽,每个槽分配到不同的Redis节点上。数据操作时,通过CRC16算法对key计算并取模,确定其所属的槽和对应的节点,从而实现高效的数据存取。
216 13
|
11月前
|
存储 缓存 监控
利用 Redis 缓存特性避免缓存穿透的策略与方法
【10月更文挑战第23天】通过以上对利用 Redis 缓存特性避免缓存穿透的详细阐述,我们对这一策略有了更深入的理解。在实际应用中,我们需要根据具体情况灵活运用这些方法,并结合其他技术手段,共同保障系统的稳定和高效运行。同时,要不断关注 Redis 缓存特性的发展和变化,及时调整策略,以应对不断出现的新挑战。
188 10
|
JSON NoSQL Java
springBoot:jwt&redis&文件操作&常见请求错误代码&参数注解 (九)
该文档涵盖JWT(JSON Web Token)的组成、依赖、工具类创建及拦截器配置,并介绍了Redis的依赖配置与文件操作相关功能,包括文件上传、下载、删除及批量删除的方法。同时,文档还列举了常见的HTTP请求错误代码及其含义,并详细解释了@RequestParam与@PathVariable等参数注解的区别与用法。
121 2
|
存储 消息中间件 NoSQL
【redis】redis的特性和主要应用场景
【redis】redis的特性和主要应用场景
668 2