news 2026/6/15 17:36:02

高并发下的 Token 存储策略: Redis 与 MySQL 的一致性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
高并发下的 Token 存储策略: Redis 与 MySQL 的一致性

一、 背景:一个 Token 的两难境地

在微服务或前后端分离架构中,Access Token是用户身份的唯一凭证。关于它的存储,我们面临两个看似矛盾的需求:

  1. 极速验证:每个接口请求(QPS 可能高达数万)都要验证 Token,延迟必须在毫秒级。
  2. 数据安全与管理:Token 关系到用户安全,不能丢;管理员需要在后台查询、踢人下线,需要复杂的查询能力。

解决方案:采用“Redis (热数据) + MySQL (冷数据)”的双存储架构。


二、 核心问题 1:后端鉴权时,该读 Redis 还是 MySQL?

结论:只读 Redis,绝不读 MySQL。

当用户发起请求GET /order/list并携带Bearer Token时,后端的拦截器(Filter)执行流程如下:

  1. Redis 是“地铁闸机”

    • 拦截器直接去 Redis 查询该 Token。
    • 有数据:放行。耗时< 1ms
    • 无数据:直接拦截,返回401 Unauthorized不进行MySQL 回源查询。
  2. MySQL 是“户籍档案室”

    • MySQL 的作用不是用来给代码做实时鉴权的。
    • 如果每个请求都查 MySQL,数据库连接池瞬间就会被耗尽,整个系统会因为鉴权逻辑而崩溃。

原则:在高频的鉴权场景下,Redis 是唯一的“权威(Authority)”


三、 核心问题 2:Redis 和 MySQL 的一致性如何保持?

既然两边都存了,如何保证数据不打架?我们按 Token 的生命周期分为四个阶段来看:

1. 登录阶段(创建:双写)

当用户登录成功生成 Token 时:

  • 动作 A:将 Token 信息插入MySQL(作为持久化备份,供管理员查询)。
  • 动作 B:将 Token 信息写入Redis,并设置TTL (过期时间)(如 30 分钟)。
  • 一致性评价:强一致。

2. 鉴权阶段(读取:Redis 主导)

  • 动作:只读 Redis。
  • 异常情况:如果 Redis 数据丢了(如宕机)但 MySQL 还在,怎么办?
  • 策略认栽。系统视作用户“未登录”,前端会触发刷新 Token 或重新登录流程。绝不回源查 DB,防止缓存击穿导致数据库雪崩。

3. 过期阶段(自然消亡:最终不一致)

  • 动作
    • Redis:TTL 一到,自动删除 Key。用户访问报 401。
    • MySQL:数据依然存在,变成了“历史垃圾数据”。
  • 策略允许不一致。这种不一致对业务无害(因为鉴权只看 Redis),MySQL 的历史数据可以通过定时任务清理。

4. 登出/踢人阶段(销毁:双删)

这是最关键的一步,必须保证安全。

  • 动作显式删除 MySQL+显式删除 Redis
  • 顺序建议删 DB->删 Redis(符合 Cache Aside Pattern)。
  • 策略:必须确保 Redis 被删掉,否则用户在 Token 过期前还能非法访问。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 17:03:41

米哈游Java后端面试被问:Spring Boot Starter的制作原理

一、核心机制对比 1. RDB&#xff08;Redis Database&#xff09; bash # RDB 持久化核心原理 # 1. 创建内存快照&#xff08;二进制压缩文件&#xff09; # 2. fork子进程执行&#xff0c;不影响主进程 # 3. 生成的.rdb文件紧凑&#xff0c;恢复速度快# 配置示例 save 900 1…

作者头像 李华
网站建设 2026/6/10 15:48:09

WebUploader如何配合Vue3实现大文件上传的跨平台兼容?

一个大三学生的文件管理系统血泪史&#xff08;前端篇&#xff09; 各位看官&#xff0c;我是浙江某高校网络工程专业的大三学生&#xff0c;最近在搞一个"史诗级"项目——文件管理系统。为啥说是史诗级&#xff1f;因为光是需求就快把我整秃噜皮了&#xff01; 项…

作者头像 李华
网站建设 2026/6/13 12:17:58

高通量序列数据分析实战(Agent驱动的智能分析新范式)

第一章&#xff1a;高通量序列数据分析的范式变革随着测序技术的飞速发展&#xff0c;高通量数据的规模呈指数级增长&#xff0c;传统的分析流程已难以应对日益复杂的生物信息学挑战。计算资源的瓶颈、数据异构性以及分析可重复性的缺失&#xff0c;推动了分析范式的根本性转变…

作者头像 李华
网站建设 2026/6/15 15:21:38

基于微信小程序的成都美食分享系统

Spring Boot基于微信小程序的成都美食分享系统是一个集成了现代信息技术和便捷用户界面的应用程序。以下是关于该系统的详细介绍&#xff1a; 1. 背景与意义 背景&#xff1a;随着计算机技术和互联网技术的飞速发展&#xff0c;传统的人工管理方式已经不能满足现代社会的需求。…

作者头像 李华
网站建设 2026/6/14 23:44:43

车规级技术破局智慧巡检!诚芯智联渠道峰会解锁第二增长曲线

当车规级定位导航技术跨越赛道&#xff0c;赋能工业与公共服务场景&#xff0c;将碰撞出怎样的创新火花&#xff1f; 2025年12月17日&#xff0c;全国首届聚焦无人设备智能巡检的“共建 AI 治理新生态&#xff0c;共赢智慧巡检大未来”——诚芯智联行业渠道合作峰会在武汉光谷圆…

作者头像 李华
网站建设 2026/6/15 0:29:25

为什么你的气象数据总偏差?深入剖析Agent传感器维护盲区

第一章&#xff1a;气象观测Agent的设备维护气象观测Agent作为自动化数据采集系统的核心组件&#xff0c;其稳定运行依赖于底层硬件与软件服务的协同维护。为确保传感器数据的连续性与准确性&#xff0c;需建立标准化的设备巡检与故障响应机制。日常巡检流程 定期检查是预防性维…

作者头像 李华