Redis批量删除操作

前言

想要批量删除redis中的key,这里引用到了一个xargs命令,但属于linux中的命令,windows下需要自行下载工具包然后配环境变量,笔者没找到,就在linux中实践了。

命令:xargs

xargs是一个非常强大的命令,可以取一个命令的输出作为另一个命令的参数。其中还有很多用法,有兴趣伙伴可以深入了解。
附上看过的三个不同作者的文章。

  • xargs的简单介绍
  • xargs—组合命令的工具
  • xargs命令详解
先看效果:

先设定,三个key。

127.0.0.1:6379> set Test_one 1
OK
127.0.0.1:6379> set Test_two 2
OK
127.0.0.1:6379> set Test_three 3
OK
127.0.0.1:6379> keys Test*
1) "Test_three"
2) "Test_two"
3) "Test_one"

开始使用xargs批量删除
redis-cli -a 123qqqq keys Test* | xargs -r -t -n1 redis-cli -a 123qqqq del

[root@acbb5763ee1f /]# redis-cli -a 123qqqq keys Test* | xargs -r -t -n1 redis-cli -a 123qqqq del
redis-cli -a 123qqqq del Test_three 
(integer) 1
redis-cli -a 123qqqq del Test_two 
(integer) 1
redis-cli -a 123qqqq del Test_one 
(integer) 1

查看结果

127.0.0.1:6379> keys Test*
(empty list or set)
粗解

redis-cli -h 192.21.23.144 -p 6379 -a qqqqq -n 1 keys Test* | xargs -r -t -n1 redis-cli -h 192.21.23.144 -p 6379 -a qqqqq -n 1 del

分为两个部分执行:1、先登录查出需要删掉的key;2、把1中结果当成删除命令的参数,这个参数用xrgs接收,并给删除指令。

xargs下:
-r  no-run-if-empty  就是如果参数为空不执行后面的命令
-t  先打印执行命令 然后再执行
-n1  传入的参数没批执行几条,-n1,1就是每次传入1个值执行一次,具体可看这位大佬的解释 xargs

redis-cli下:
-h  host
-p  port
-a  auth
-n  选择库  -n 1相当于select 1 (默认0)

参考文章

你可能感兴趣的:(中间件,redis,数据库,linux)