Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在一个命令中批量删除redis密钥_Redis - Fatal编程技术网

如何在一个命令中批量删除redis密钥

如何在一个命令中批量删除redis密钥,redis,Redis,现在我连接到redis,找到一些如下键: > keys "user:login:user:*" user:login:user:62668 user:login:user:61970 user:login:user:63586 ...... 现在我想删除此密钥,我已尝试: keys "user:login:user:*" | xargs del keys "user:login:user:*" | del keys &qu

现在我连接到redis,找到一些如下键:

> keys "user:login:user:*"
user:login:user:62668
user:login:user:61970
user:login:user:63586

......
现在我想删除此密钥,我已尝试:

keys "user:login:user:*" | xargs del

keys "user:login:user:*" | del

keys "user:login:user:*" | redis-cli xargs del

两者都无法工作,我应该如何做才能为一个操作批量删除它?

您需要使用--raw运行
redis cli
,以将结果作为
redis cli del

redis cli del`redis cli--raw key“用户:登录:用户:”` 更好的方法 虽然@Guy Korland回答了这个问题,但这种方式可能会造成长期阻塞。我们应该始终记住,redis使用单线程来操作数据,因此如果您有许多密钥匹配
用户:登录:用户:
,或者每个密钥的类型是
列表
哈希
排序集
,包含大量元素。删除过程将花费大量时间,redis无法响应其他命令

redis cli--扫描--模式用户:*xargs redis cli取消链接
使用
scan
&取消链接而不是
&
del
可以避免阻塞

有关
扫描
之间的差异,
取消链接
删除

参见