使用Linux管道批量删除Redis的key

Redis并没有提供批量删除记录的方法,这有时候很不方便,特别是重新初始化数据的时候。一般有两种做法:

如果业务场景明确,可以通过DBID进行区分,Redis默认的DBID是0,默认的配置文件是有16个DB,可以在应用中通过select方法指定数据库的ID进行存取。然后通过FlushDB命令能清空某个ID的数据库,达到重新初始化的目的。

如果某个ID的数据库已经有很多类型的记录了,无法整个库清空,那么就需要批量的删除key值,这时可以采用Linux管道,比如我要删除DBID为1的test开头的key值:

[root@banping redis]# /banping/redis/src/redis-cli -n 1 keys “test*” | xargs /banping/redis/src/redis-cli -n 1 del
(integer) 5095

把keys的输出作为del的输入,这样就批量删除了。

附redis-cli 命令:

redis-cli 2.4.2

Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
-h Server hostname (default: 127.0.0.1)
-p Server port (default: 6379)
-s Server socket (overrides hostname and port)
-a Password to use when connecting to the server
-r Execute specified command N times
-i When -r is used, waits seconds per command.
It is possible to specify sub-second times like -i 0.1.
-n Database number
-x Read last argument from STDIN
-d Multi-bulk delimiter in for raw formatting (default: n)
–raw Use raw formatting for replies (default when STDOUT is not a tty)
–latency Enter a special mode continuously sampling latency.
–help Output this help and exit
–version Output version and exit

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>