*Redis FUNCTION FLUSH 命令

FUNCTION FLUSH 用于删除 Redis 函数库中的所有函数,清空整个函数库。


*语法

FUNCTION FLUSH [ASYNC | SYNC]

*参数说明

参数 类型 必填 说明
ASYNC Flag 异步清空(非阻塞)
SYNC Flag 同步清空(阻塞)

*返回值

  • OK:清空成功
  • Error:权限不足等

*时间复杂度

O(N),其中 N 是函数库中函数的数量


*示例

*基本用法

> FUNCTION LOAD "#!lua name=mylib\nredis.register_function('myfunc', function(keys, args) return 'hello' end)"
mylib
> FUNCTION LIST
1) 1) "library_name"
   2) "mylib"
> FUNCTION FLUSH
OK
> FUNCTION LIST
(empty array)

*异步清空

> FUNCTION FLUSH ASYNC
OK

*常见错误

错误 原因 解决
ERR wrong number of arguments 参数数量错误 检查参数是否正确

*最佳实践

  • 场景:完全重置函数库、测试环境清理、版本升级前准备
  • 生产环境建议使用 ASYNC 模式,避免阻塞
  • 清空前建议先执行 FUNCTION DUMP 备份
  • 注意:此操作不可撤销,所有函数将被删除

*FAQ

Q1: FUNCTION FLUSH 和 FUNCTION DELETE 有什么区别? A: FUNCTION FLUSH 删除所有函数,FUNCTION DELETE 只删除指定函数。FLUSH 是全局操作,DELETE 是单函数操作。

Q2: 清空函数库会影响正在执行的函数吗? A: 正在执行的函数会继续完成,但新的函数调用会失败。

Q3: ASYNC 和 SYNC 有什么区别? A: ASYNC 在后台异步删除,立即返回;SYNC 等待所有函数删除完成后返回。默认行为取决于配置。