*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 DUMP 和 FUNCTION RESTORE 的关系? A: FUNCTION DUMP 导出二进制数据,FUNCTION RESTORE 可以导入这些数据,实现完整的函数库备份和恢复。
Q2: 导出的数据可以跨 Redis 版本使用吗? A: 一般可以,但建议在同版本或兼容版本之间使用。大版本升级时可能需要重新加载源代码。
Q3: 导出数据包含函数代码还是编译后的字节码? A: 包含函数源代码和元数据,可以跨平台恢复。