redis - 删除Redis中的多个键

标签 redis xargs

在我的redis数据库中,我试图删除一系列以以下开头的键:EPOCH_vgsOwnedVehs_我尝试了以下方法:

redis-cli -h 127.0.0.1 -p myport -a mypassword --scan --pattern EPOCH_vgsOwnedVehs_* | xargs redis-cli unlink
redis-cli -h 127.0.0.1 -p myport -a mypassword --scan --pattern EPOCH_vgsOwnedVehs_* | xargs redis-cli -h 127.0.0.1 -p myport -a mypassword unlink
但是,我收到以下错误消息:
'xargs' is not recognized as an internal or external command, operable program or batch file.
任何人都可以帮助为什么xargs在这种情况下不起作用?我看到上面相同的语法在这里已经被提及很多次了,似乎对其他人也有用...
编辑:我忘了提一下,当我在管道之前运行该行的前半部分时,它确实返回了所有符合条件的键。

最佳答案

以下应做的工作; (添加了示例打印输出)

redis-cli -h 127.0.0.1 -p 6379 -a mypass --scan --pattern EPOCH_vgsOwnedVehs_* | xargs redis-cli -h 127.0.0.1 -p 6379 -a mypass unlink

127.0.0.1:6379> config set requirepass mypass
OK
127.0.0.1:6379> auth mypass
OK
127.0.0.1:6379> set EPOCH_vgsOwnedVehs_a a
OK
127.0.0.1:6379> set EPOCH_vgsOwnedVehs_b a
OK
127.0.0.1:6379> set EPOCH_vgsOwnedVehs_c a
OK
127.0.0.1:6379> set EPOCH_vgsOwnedVehs_d a
OK
127.0.0.1:6379>

redis-cli -h 127.0.0.1 -p 6379 -a mypass --scan --pattern EPOCH_vgsOwnedVehs_* | xargs redis-cli -h 127.0.0.1 -p 6379 -a mypass unlink
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
(integer) 4


127.0.0.1:6379> auth mypass
OK
127.0.0.1:6379> exists EPOCH_vgsOwnedVehs_a
(integer) 0

关于redis - 删除Redis中的多个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62540238/

相关文章:

bash - 从长时间运行的进程通过管道传输到 xargs 没有效果

python和redis,语法不清楚

php - 在 Laravel 中使用多个 Redis 数据库

ruby-on-rails - 删除带有特定参数的 Sidekiq 作业?

linux - 为什么 find piped to xargs mv 删除了我的文件?

macos - 当从 'git branch' 给出输出时,xargs 在 Mac 上不起作用

redis - 使用 Redis 的 ASP.NET Core SignalR 横向扩展

java - Redis 在哈希中存储列表

bash - 如何将多个命令通过管道传递给 bash?

linux - 如何在管道多行时删除单行中的重复单词