首页/数据/数据库速查/FUNCTION 函数库(7.0,替代脚本管理)
Redis 命令96 条

FUNCTION 函数库(7.0,替代脚本管理)

Redis 7.0 的 FUNCTION 引擎:用 shebang 头加载命名 Lua 库,FCALL 调用;库随 RDB/AOF 持久化、可 LIST/DUMP/RESTORE,比易失的脚本缓存更适合多团队脚本治理。

数据库速查数据更新于 2026-10-12

加载与调用

加载与调用
FUNCTION LOAD "#!lua name=mylib\nredis.register_function('myincr', function(keys, args) return redis.call('INCRBY', keys[1], args[1]) end)"
FCALL myincr 1 counter 5
FUNCTION LIST
FUNCTION STATS
FUNCTION KILL          # 杀运行中的只读函数
FUNCTION DUMP          # 导出库(可跨实例 RESTORE)
FUNCTION FLUSH ASYNC
对比 EVAL命名/可管理/随数据持久化;脚本缓存不持久化
调用FCALL fname numkeys key... arg...
权限ACL 可控制 fcall 与 function 管理命令
版本7.0+,连接老实例要回退 EVAL
从脚本迁移:把脚本内容改成 register_function 包一层,客户端调用从 EVALSHA 换成 FCALL。

易错点

  • shebang 头格式写错(#!lua name=...)直接加载失败
  • FUNCTION FLUSH 清空全部库:生产执行前确认没有团队还在用旧函数

数据来源与参考

  • Redis 官方文档: FUNCTION LOAD
  • Redis 官方文档: FCALL

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌