Redis--Lua 脚本原子性与滑动窗口限流
Lua 核心特性多条 Redis 命令封装在 Lua 中发送服务端完整执行完所有指令才会处理下一条请求天然原子性无需额外加锁。滑动窗口限流原理把一段时间切分成多个小时间片实时统计每个分片内请求数量超出阈值直接拦截相比漏桶、令牌桶流量管控更平滑不会出现瞬间突刺流量全部放行。Redis Lua 滑动窗口限流 VS Sentinel 限流 / 熔断对比Redis 滑动窗口限流管控粒度用户维度手机号、渠道 id精准限制单个用户操作频次偏向业务防刷、配额管控层级业务层依赖 Redis 中间件分布式环境所有服务计数统一短板仅能限流下游服务超时、异常无法处理存在网络开销Sentinel 限流熔断管控粒度接口、服务整体 QPS、并发线程数保护整个服务特有能力熔断下游报错 / 超时达到阈值直接切断调用快速失败解决服务雪崩层级应用本地无需中间件实时监控服务健康状态小总结Lua 相当于把一堆 Redis 操作打包一次性执行中途不会被别的请求插队计数不会错乱。滑动窗口就是拆分时间统计流量不会一下子放过大量请求。两者限流分工不一样Redis 管单个用户防止同一个人疯狂刷短信Sentinel 管整个接口防止海量请求打垮服务下游短信服务挂了还能熔断止损。Lua 原子不中断滑动窗口 分片统计流量Redis 管用户配额Sentinel 管服务防护附Sentinel 热点参数限流 VS Redis Lua 限流Sentinel 热点参数限流有严重单机偏差分布式集群场景计数不准 Sentinel 的热点计数器存在当前应用内存里不是全局共享。Sentinel 热点限流能力有限只能做简单 QPS 拦截做不了复杂业务统计。Sentinel 热点限流没有持久化重启实例统计全部丢失。Redis Lua 滑动窗口限流业务配额防刷定位业务层分布式配额管控管「单个用户 / 渠道能操作多少次」数据存储Redis 全局共享集群多实例计数统一无误差能力可做日 / 小时 / 分钟多维度计数、持久化留存记录、复杂业务规则每日上限、剩余条数短板只能限流没有熔断、降级、服务健康监控能力下游短信服务超时它管不了举例限制单个手机号一天最多发 50 条营销短信防止恶意批量刷短信Sentinel 热点参数限流单机接口流量防护定位应用本地服务保护辅助拦截突发热点流量核心能力是熔断降级数据存储当前实例内存分布式集群统计失真无法精准管控用户全局配额特有能力熔断、超时降级、系统负载保护、监控下游服务状态短板计数不全局统一、数据不落地不能做长期业务配额统计举例某个手机号瞬间 1 秒 100 次请求临时拦截突刺流量第三方短信服务超时直接熔断Redis Lua 分布式限流 Sentinel 热点参数限流 分层协作方案第一层Sentinel 本地热点限流快速拦截无网络开销请求进入接口先经过 Sentinel 热点参数规则针对手机号 / 渠道 ID 做单机瞬时 QPS 拦截。作用瞬间打爆接口的恶意高频请求直接在本机内存拦截不用走 Redis 网络 IO减轻 Redis 压力局限多实例集群计数分开统计无法管控全局总次数仅做瞬时流量拦截。第二层Redis Lua 滑动窗口分布式限流全局精准业务配额校验Sentinel 放行后再执行 Redis Lua 脚本做全局限流统计。作用Redis 全局统一计数所有服务实例共享同一套统计数据精确管控单用户分钟 / 小时 / 每日发送上限补充Lua 原子执行计数、清理过期窗口一步完成不会出现并发计数错乱。第三层Sentinel 熔断 / 降级兜底下游故障防护限流全部通过后调用第三方短信服务商接口Sentinel 监控调用成功率、响应耗时下游超时 / 报错比例超标 → 触发熔断直接返回降级提示不再调用第三方防止服务线程耗尽引发服务雪崩。双组件分工互补逻辑Sentinel 热点参数限流 本机瞬时流量防火墙优势本地内存计算速度极快扛住突发脉冲流量短板集群计数不准、无持久化、不能做长期业务配额。Redis Lua 滑动窗口限流 分布式业务配额管控核心优势全局统一计数、支持多时间维度统计、数据持久化留存满足风控对账短板存在 Redis 网络开销超高并发下会增加少量延迟。故障降级兼容方案生产必备如果 Redis 集群宕机、网络不通捕获 Redis 异常后临时降级为仅依靠 Sentinel 热点限流保障服务可用Redis 恢复后自动切回两层限流完整逻辑同时异步补偿丢失的计数日志保证业务统计最终准确。Sentinel 热点限流管一瞬间猛刷Redis 管一整天能发多少熔断管第三方通道挂了怎么办。

相关新闻

嵌入式系统PRCM模块配置实战:时钟管理与低功耗设计

嵌入式系统PRCM模块配置实战:时钟管理与低功耗设计

1. PRCM模块:嵌入式系统的“心脏”与“脉搏”在嵌入式系统,尤其是复杂的SoC设计中,电源、复位和时钟管理模块,也就是我们常说的PRCM,其地位堪比整个系统的“心脏”和“脉搏”。它远不止是一个简单的开关或分频器&#…

2026/10/17 4:22:32 阅读更多 →
ConvertOneNote2MarkDown与Obsidian无缝对接:打造你的个人知识管理系统

ConvertOneNote2MarkDown与Obsidian无缝对接:打造你的个人知识管理系统

ConvertOneNote2MarkDown与Obsidian无缝对接:打造你的个人知识管理系统 【免费下载链接】ConvertOneNote2MarkDown Ready to make the step to Markdown and saying farewell to your OneNote, EverNote or whatever proprietary note taking tool you are using? …

2026/10/17 4:22:46 阅读更多 →
C#中的泛型

C#中的泛型

泛型是一种对变量类型的参数化,在定义类,接口或方法时,在名称后用一个泛型占位符来代替想要被指定的变量类型,在实际用到的时候,就可以自主的来指定该变量类型。 泛型类,泛型接口与泛型函数中的泛型占位符可…

2026/10/17 4:25:36 阅读更多 →

最新新闻

LabVIEW与VisionPro集成实战:从.NET直调到C#中间层方案

LabVIEW与VisionPro集成实战:从.NET直调到C#中间层方案

搞机器视觉集成这些年,"用LabVIEW做流程控制、拿VisionPro干算法活"的组合,我在不止一个项目里见过。LabVIEW 2020的图形化开发环境做交互界面、运动控制和数据流逻辑确实顺手,但真要处理复杂的视觉检测、精密定位、多模板匹配&…

2026/10/18 5:40:42 阅读更多 →
【基于 Swoole+Hyperf 的微服务实战】第十一周·周二:构建异步日志采集与分析系统

【基于 Swoole+Hyperf 的微服务实战】第十一周·周二:构建异步日志采集与分析系统

【基于 SwooleHyperf 的微服务实战】第十一周周二:构建异步日志采集与分析系统今天我们进入第十一周周二,继续构建异步日志采集与分析系统。昨天我们实现了日志接收服务,将日志投递到 Kafka。今天要打造系统的消费与存储能力:编写…

2026/10/18 5:40:42 阅读更多 →
nuScenes数据集深入解析:多模态自动驾驶数据读取与坐标系变换

nuScenes数据集深入解析:多模态自动驾驶数据读取与坐标系变换

简介:面向自动驾驶研究与开发者,这份代码包围绕nuScenes数据集的下载、安装与可视化分析展开,完整梳理了1000个复杂场景、40万关键帧、140万相机图、1400万3D标注框以及多传感器配置和23类目标对象的处理逻辑,可帮助中高级算法工程…

2026/10/18 5:40:42 阅读更多 →
LabelImg 目标检测标注工具安装使用与VOC转YOLO实战

LabelImg 目标检测标注工具安装使用与VOC转YOLO实战

简介:LabelImg 是一款基于 Python Qt 开发的开源目标检测标注工具,本教程 PDF 面向机器学习初学者、算法工程师及数据标注人员,旨在解决目标检测任务中训练数据难以快速准备的问题。文档从环境要求讲起,给出使用清华源安装 label…

2026/10/18 5:40:42 阅读更多 →
x64dbg字符串搜索:逆向调试中的精准定位与实战技巧

x64dbg字符串搜索:逆向调试中的精准定位与实战技巧

做逆向调试,拿到一个陌生程序,很多人的第一反应是跟API、翻反汇编,绕来绕去半小时找不到北。我的习惯恰恰相反——先搜字符串。字符串是程序跟用户“说话”的痕迹,也是开发者留在代码里的路标。x64dbg里的字符串搜索功能&#xff…

2026/10/18 5:40:42 阅读更多 →
栈实现综合计算器:双栈分工与优先级处理详解

栈实现综合计算器:双栈分工与优先级处理详解

栈这个结构,很多人学的时候觉得简单,不就是后进先出嘛,拿个数组或者链表模拟一下,push、pop 一写就完事了。但真到了要拿它解决一个稍微像样点的问题,比如做一个能算加减乘除、带括号、还能处理多位数的计算器&#xf…

2026/10/18 5:39:42 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →