*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)。