Redis 定长队列的探索和实践:用 List 与 Lua 搭一个按游戏分组的轻量消息模型
这篇实践文章围绕“按游戏维度聚合、允许少量丢弃、又要控制3分钟时效”的上报场景,介绍了如何用 Redis List、Set 与 Lua 脚本实现定长队列和批量消费。相比直接上 MQ,这套方案更贴近业务约束,已在线上以约 1w QPS 平稳运行。
这篇实践文章围绕“按游戏维度聚合、允许少量丢弃、又要控制3分钟时效”的上报场景,介绍了如何用 Redis List、Set 与 Lua 脚本实现定长队列和批量消费。相比直接上 MQ,这套方案更贴近业务约束,已在线上以约 1w QPS 平稳运行。

这篇入门文章把 Lua 最先要掌握的几件事串了起来:如何进入交互模式、变量和 8 种基本类型、常见运算符、流程控制、函数以及字符串处理。重点保留了 Lua 与其他语言最容易混淆的规则,适合刚开始上手时快速建立判断框架。

这篇文章用一个 `string.find()` 的循环示例,拆解 LuaJIT 从字节码解释到热点编译的运行过程,并结合 `2.0.5` 与 `2.1.0-beta3` 的实际输出说明:能否避开 NYI、是否命中 JIT,往往比“用了 LuaJIT”这件事本身更决定性能结果。 很多人知道 LuaJIT 很快,但真正落到线上脚本时,性能差距往往不只是“开没开 JIT”这么简单。

这篇文章梳理了 Java 与 Lua 混合开发的两条主线:一是在 Java 程序里加载并执行 Lua 脚本,实现动态扩展与脚本热更新;二是在 Lua 中访问 Java 对象和类。文中保留 LuaJ、JNLua 的依赖与示例代码,并补出适用场景与实现边界,方便读者快速判断该选哪种集成方式。

文章围绕“Redis 事务不能像 MySQL 一样回滚”这一痛点,拆解 Lua 脚本如何把库存校验、扣减、防重和结果返回收敛为一次原子执行。文中保留了初始化、脚本加载与执行代码,并说明 Redis 集群下多 Key 同分片等落地细节。

这篇文章梳理了一个最小可用的 APISIX Lua 自定义插件,从脚本编写、配置加载到 Dashboard 可见化的完整发布过程。重点不在插件逻辑本身,而在部署细节:插件目录、`config.yaml` 注册、热加载接口,以及 `schema.json` 同步这几个最容易踩坑的环节。
