*Redis FUNCTION DUMP 命令

FUNCTION DUMP 用于将 Redis 函数库以二进制格式导出,可用于备份或迁移。


*语法

FUNCTION DUMP

*参数说明

无参数。


*返回值

  • Bulk String:函数库的二进制序列化数据
  • Error:权限不足等

*时间复杂度

O(N),其中 N 是函数库中所有函数的总大小


*示例

*基本用法

> FUNCTION LOAD "#!lua name=mylib\nredis.register_function('myfunc', function(keys, args) return 'hello' end)"
mylib
> FUNCTION DUMP
"\x04\x01\x00\x00..."  (二进制数据)

*保存到文件(Redis CLI)

> FUNCTION DUMP
> SAVE function.dump

*常见错误

错误 原因 解决
ERR no functions to dump 函数库为空 先使用 FUNCTION LOAD 加载函数

*最佳实践

  • 场景:函数库备份、跨实例迁移、版本控制
  • 建议定期执行 FUNCTION DUMP 并保存到外部存储
  • 导出的数据可以通过 FUNCTION RESTORE 恢复
  • 注意:DUMP 包含所有函数库,无法单独导出某个函数

*FAQ

Q1: FUNCTION DUMPFUNCTION RESTORE 的关系? A: FUNCTION DUMP 导出二进制数据,FUNCTION RESTORE 可以导入这些数据,实现完整的函数库备份和恢复。

Q2: 导出的数据可以跨 Redis 版本使用吗? A: 一般可以,但建议在同版本或兼容版本之间使用。大版本升级时可能需要重新加载源代码。

Q3: 导出数据包含函数代码还是编译后的字节码? A: 包含函数源代码和元数据,可以跨平台恢复。