首页/数据/Redis 进阶速查/Lua 脚本的限制与超时行为
本包目录(421 条)
数据结构与选型42 条
持久化56 条主从与哨兵51 条Cluster 集群44 条内存与管理99 条性能与排障129 条

Lua 脚本的限制与超时行为

脚本执行期间服务器被独占,默认 lua-time-limit 5 秒只用于打日志;超时后仅允许 SCRIPT KILL(未写数据时)或 SHUTDOWN NOSAVE 中断。

Redis 进阶速查数据更新于 2026-10-12
默认限制lua-time-limit 5 秒(不强制终止)
超时后可执行 SCRIPT KILL / SHUTDOWN NOSAVE
复制方式5.0 起按效果复制,默认以数据变更传播

超时处置

超时处置
redis-cli SCRIPT KILL
redis-cli SCRIPT KILL   # 已写入的脚本无法终止,只能评估停机重放
超过 lua-time-limit 后其他客户端命令返回 BUSY 错误;脚本中大批量循环、全量遍历、复杂运算都会成倍拉长阻塞时间。

易错点

  • SCRIPT KILL 对已执行写命令的脚本无效,会返回 UNKILLABLE 提示
  • 把大集合成员全部在脚本里遍历是常见事故来源,应分批执行或放到应用侧处理

数据来源与参考

  • Redis 官方文档:EVAL 脚本超时与 SCRIPT KILL 说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌