*HDEL 命令

删除 Hash 中一个或多个 field。


*语法

HDEL key field [field ...]

*参数说明

参数 类型 必填 说明
key String Hash 的键名
field String 要删除的字段名,可一次删除多个

*返回值

条件 返回值
成功删除的 field 数量 整数
field 不存在 不计入
key 不存在 0

*时间复杂度

O(1)(单个 field),O(N)(N 个 field)


*示例

> HSET user:1001 name Alice age 30 city Beijing
(integer) 3

> HDEL user:1001 age
(integer) 1

> HDEL user:1001 name city
(integer) 2

# field 不存在
> HDEL user:1001 email
(integer) 0

# key 不存在
> HDEL nokey field
(integer) 0

*常见错误

  1. 对非 Hash 使用:返回 WRONGTYPE。

*最佳实践

  1. 清理过期字段:Hash 存储动态属性时,用 HDEL 清理已失效的 field。
  2. 批量删除:一次 HDEL 多个 field,减少网络往返。

*FAQ

Q: HDEL 会删除 key 吗? A: 当 Hash 最后一个 field 被删除后,key 自动删除。

Q: HDEL 和 DEL 有什么区别? A: HDEL 删除 Hash 中的 field;DEL 删除整个 key(包括所有 field)。