Redis DEL 命令删除指定的一个或多个 key。如果指定的 key 不存在,则该操作会被忽略。
命令格式
DEL key [key ...]
可用版本:>=1.0.0
时间复杂度:O(N),N 为被删除的 key 的数量。删除单个字符串类型的 key 时,时间复杂度为 O(1)。删除单个列表、集合、有序集合或哈希表类型的 key,时间复杂度为 O(M),M 为以上数据结构内的元素数量。
命令返回值
被删除的 key 数量。
扩展
我们知道 DEL 命令可以删除多个 key,除此之外,还可以通过 redis-cli 命令结合 Linux 的内容传递命令 xargs 来批量删除,如下:
redis> set k1 1
OK
redis> set k2 2
OK
redis> set k3 3
OK
redis-cli -h <hostname> -a <password> keys 'k*' | xargs redis-cli -h <hostname> -a <password> del (integer) 3
注:如果 redis-cli 没有设置成系统变量,需要指定 redis-cli 的完整路径。
删除当前数据库的所有 key 的命令为 FLUSHDB,即清除一个数据库;删除所有数据库的所有 key(所有数据)的命令为 FLUSHALL,即清除整个 redis 数据。
示例
redis> SET key1 Hello
OK
redis> DEL key1 # 删除单个 key
(integer) 1
redis> EXISTS key2
(integer) 0
redis> DEL key2 # 删除一个不存在的 key
(integer) 0
redis> SET key3 Hello
OK
redis> SET key4 Hello
OK
redis> DEL key3 key4 key5 # 批量删除,key5 不存在,则忽略
(integer) 2