Lua 语言中一行代码把时间戳转成日期
在 Lua 里把时间戳转成可读日期,核心就是 `os.date(format, stampTime)`。本文结合 Wireshark Lua 插件里的实际需求,说明如何用一行代码完成转换,并整理常见格式符的用途与选型,便于直接改成你自己的输出格式。 在 Lua 脚本里,时间戳通常是最原始也最难直接阅读的数据形态。
在 Lua 里把时间戳转成可读日期,核心就是 `os.date(format, stampTime)`。本文结合 Wireshark Lua 插件里的实际需求,说明如何用一行代码完成转换,并整理常见格式符的用途与选型,便于直接改成你自己的输出格式。 在 Lua 脚本里,时间戳通常是最原始也最难直接阅读的数据形态。
文章围绕“Redis 事务不能像 MySQL 一样回滚”这一痛点,拆解 Lua 脚本如何把库存校验、扣减、防重和结果返回收敛为一次原子执行。文中保留了初始化、脚本加载与执行代码,并说明 Redis 集群下多 Key 同分片等落地细节。
这篇文章用一个 `string.find()` 的循环示例,拆解 LuaJIT 从字节码解释到热点编译的运行过程,并结合 `2.0.5` 与 `2.1.0-beta3` 的实际输出说明:能否避开 NYI、是否命中 JIT,往往比“用了 LuaJIT”这件事本身更决定性能结果。 很多人知道 LuaJIT 很快,但真正落到线上脚本时,性能差距往往不只是“开没开 JIT”这么简单。
这篇文章把 Lua 的定位、核心特性、常见使用场景和基础安装流程整理成一篇可直接上手的入门稿。你可以先判断 Lua 适不适合自己的项目,再按 Linux 或 Windows 路径完成安装,并用最简单的 Hello World 验证环境是否可用。
这篇实践文章围绕“按游戏维度聚合、允许少量丢弃、又要控制3分钟时效”的上报场景,介绍了如何用 Redis List、Set 与 Lua 脚本实现定长队列和批量消费。相比直接上 MQ,这套方案更贴近业务约束,已在线上以约 1w QPS 平稳运行。
这篇文章把 Lua 的本地环境搭建过程重新整理成一套可直接照着做的步骤:先下载对应版本,再把 `lua-5.4.4/src` 加入 `~/.zshrc`,最后用终端命令验证是否进入交互模式。同时补充了三种常见运行方式,方便你判断自己已经装好、配好并能真正用起来。
这篇内容梳理了在 Windows 下从 Lua 源码编译静态库、再接入 Visual Studio C++ 控制台项目的基本流程。重点不是展开复杂配置,而是把关键节点串起来:源码准备、生成 `.lib`、链接设置,以及通过 `Runlua.cpp` 启动脚本后应看到的结果,方便读者快速判断自己是否走对了。
尾调用和尾递归经常被放在一起讨论,但两者并不是一回事。本文用 Lua 代码拆开说明它们各自的定义、常见误区、优化前提和实际限制,帮助你判断一段函数调用到底是不是尾调用,以及尾递归为何依赖语言实现才能真正省栈。
这篇文章围绕 OpenResty 的文件上传实现,梳理了 `lua-resty-upload` 的流式读取方式、常见 token 结构,以及一个可直接落地的上传封装。文中保留关键配置、Lua 代码和测试请求,并指出文件大小、扩展名、目录创建与返回结果这些实现细节。
这篇文章梳理了 Java 与 Lua 混合开发的两条主线:一是在 Java 程序里加载并执行 Lua 脚本,实现动态扩展与脚本热更新;二是在 Lua 中访问 Java 对象和类。文中保留 LuaJ、JNLua 的依赖与示例代码,并补出适用场景与实现边界,方便读者快速判断该选哪种集成方式。
这篇入门文章把 Lua 最先要掌握的几件事串了起来:如何进入交互模式、变量和 8 种基本类型、常见运算符、流程控制、函数以及字符串处理。重点保留了 Lua 与其他语言最容易混淆的规则,适合刚开始上手时快速建立判断框架。
这篇文章围绕一个 Redis Lua 脚本踩坑案例展开:同样是更新阅读时长,从固定自增 1 秒改成按参数累加后,脚本却报出“对布尔值做算术运算”的错误。问题根源不在 Spring,而在 Redis Lua 的返回值类型转换规则,尤其是 `GET` 取不到值时会映射成 Lua 的 `false`。