*Redis FUNCTION STATS 命令
FUNCTION STATS 用于返回当前正在执行的函数的状态和统计信息。
*语法
FUNCTION STATS
*参数说明
无参数。
*返回值
- Array:当前运行的函数信息,包括运行中的命令和引擎统计
*时间复杂度
O(1)
*
*示例
*没有函数在执行时
> FUNCTION STATS
1) 1) "running_script"
2) (nil)
3) "engines"
4) 1) 1) "LUA"
2) 1) "libraries_count"
2) (integer) 1
3) "functions_count"
4) (integer) 2
*有函数在执行时
> FUNCTION STATS
1) 1) "running_script"
2) 1) 1) "name"
2) "myfunc"
3) "command"
4) "FCALL"
5) "started_at"
6) (integer) 1717500000000
3) "engines"
4) 1) 1) "LUA"
2) 1) "libraries_count"
2) (integer) 1
3) "functions_count"
4) (integer) 2
*常见错误
无常见错误。
*最佳实践
- 场景:监控函数执行、排查长时间运行的函数、性能分析
- 建议配合 FUNCTION KILL 终止异常函数
- 可以通过轮询 FUNCTION STATS 实现函数执行的监控告警
- 注意:返回的 started_at 是毫秒级 Unix 时间戳
*FAQ
Q1: FUNCTION STATS 返回哪些信息? A: 返回两部分:running_script(当前运行的函数名、命令、开始时间)和 engines(各引擎的库数量和函数数量)。
Q2: 如何计算函数运行了多久? A: 用当前时间减去 started_at 字段的值(毫秒级时间戳)。
Q3: 可以同时运行多个函数吗? A: Redis 是单线程的,同一时刻只能执行一个函数。running_script 最多只有一个条目。