Redis HDEL 命令删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。2.4 版本之前,HDEL 命令每次只能删除单个指定域;如果在 2.4 版本之前,如果需要在一个原子时间内删除多个域,需将命令包含在 MULTI/EXEC 块内;在 2.4 版本及之后,HDEL 命令才支持一次删除多个域操作。
命令格式
HDEL key field [field ...]
可用版本:>=2.0.0
时间复杂度:O(N),N 为要删除的域(field)数量。
命令参数
- key:哈希表指定的键。
- filed:哈希表中指定的域。
使用场景
我们知道 Redis 的哈希(Hash)结构不能给指定的域(field)设置过期,删除哈希结构的指定的域可以使用 HDEL 命令。
命令返回值
HDEL 命令返回被成功移除的域的数量,不包括被忽略的域。
示例
redis> HSET myhash dailymotion v0
(integer) 1
redis> HDEL myhash dailymotion # 删除单个域
(integer) 1
redis> HDEL myhash youtube # 删除不存在的域
(integer) 0
redis> HMSET myhash netflix v1 hulu v2
OK
redis> HDEL myhash netflix hulu liveleak # 删除多个域,liveleak 域不存在
(integer) 2
redis>