redis如何批量删除数据

发表于:
来源:阿酷技术学习
作者:阿酷

在我们的工作中,尤其在我们开发测试的时候,经常需要删除一些数据,比如redis中,删除某一个数据库的数据,删除所有的数据,批量删除某一个模块数据。

批量删除某一个数据库的数据:

//-n number 表示数据库的number
//删除数据库1的所有数据
redis-cli -n 1 flushdb 

删除所有数据库的数据

redis-cli flushall

删除某一数据库的批量数据

由于redis只能删除某一条数据命令del,没有找到批量删除的命令,我们只能用LINUX的xargs命令

//-n 3表示某一数据库,然后批量查询
//表示删除database number为3的数据库的键值包含Product||的所有数据
redis-cli -n 3 keys '*Product||*' | xargs redis-cli -n 3 del

引申linux xargs命令用法:

  • xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
  • xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
  • xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。
  • xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。
  • xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。
  • 之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令

例如:

find . -name *.py |ls -alh       #错误
find . -name *.py |xargs ls -alh  #正确

命令格式

some command exe |xargs -选项  command

xargs命令用法

用法: xargs [-0prtx] [--interactive] [--null] [-d|--delimiter=delim]
       [-E eof-str] [-e[eof-str]]  [--eof[=eof-str]]
       [-L max-lines] [-l[max-lines]] [--max-lines[=max-lines]]
       [-I replace-str] [-i[replace-str]] [--replace[=replace-str]]
       [-n max-args] [--max-args=max-args]
       [-s max-chars] [--max-chars=max-chars]
       [-P max-procs]  [--max-procs=max-procs] [--show-limits]
       [--verbose] [--exit] [--no-run-if-empty] [--arg-file=file]
       [--version] [--help] [command [initial-arguments]]