*Redis UNLINK 命令 异步删除一个或多个 key

*UNLINK

*语法

UNLINK key [key ...]

*说明

异步删除一个或多个 key。与 DEL 不同,UNLINK 只从 key 空间中移除 key 的引用,实际的内存回收在后台线程中异步进行。

优势

  • 不会阻塞 Redis 主线程
  • 特别适合删除大 key(大列表、大哈希表等)
  • 删除操作立即返回,用户体验更好

*示例

# 异步删除单个 key
redis-cli SET mykey "Hello"
redis-cli UNLINK mykey

# 异步删除多个 key
redis-cli MSET key1 "v1" key2 "v2"
redis-cli UNLINK key1 key2

# 删除大 key 时使用 UNLINK 避免阻塞
# 假设 biglist 有 100 万个元素
redis-cli UNLINK biglist

# 配合 SCAN 批量异步删除
redis-cli SCAN 0 MATCH "temp:*" COUNT 100

*返回值

  • 整数:成功移除引用的 key 的数量

*版本兼容性

版本 说明
>= 4.0.0 可用

*时间复杂度

O(N),其中 N 是移除引用的 key 数量。与 DEL 不同,即使删除大 key,主线程的时间复杂度仍为 O(1)。