redis 批量删除key

Linux之xargs命令传递参数的⼀个过滤器
xargs 是给命令传递参数的⼀个过滤器,也是组合多个命令的⼀个⼯具。
xargs 可以将管道或标准输⼊(stdin)数据转换成命令⾏参数,也能够从⽂件的输出中读取数据。
xargs 也可以将单⾏或多⾏⽂本输⼊转换为其他格式,例如多⾏变单⾏,单⾏变多⾏。
xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输⼊将会包含换⾏和空⽩,不过通过 xargs 的处理,换⾏和空⽩将被空格取代。
xargs 是⼀个强有⼒的命令,它能够捕获⼀个命令的输出,然后传递给另外⼀个命令。
之所以能⽤到这个命令,关键是由于很多命令不⽀持|管道来传递参数,⽽⽇常⼯作中有有这个必要,所以就有了 xargs 命令,例如:
find /sbin -perm +700 |ls -l #这个命令是错误的
find /sbin -perm +700 |xargs ls -l #这样才是正确的
xargs ⼀般是和管道⼀起使⽤。
命令格式:
some command |xargs -item command
-item参数:
-a file 从⽂件中读⼊作为sdtin
-e flag ,注意有的时候可能会是-E,flag必须是⼀个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停⽌。
-p 当每次执⾏⼀个argument的时候询问⼀次⽤户。
-n num 后⾯加次数,表⽰命令在执⾏的时候⼀次⽤的argument的个数,默认是⽤所有的。
-t 表⽰先打印命令,然后再执⾏。
-i 或者是-I,这得看linux⽀持了,将xargs的每项名称,⼀般是⼀⾏⼀⾏赋值给 {},可以⽤ {} 代替。等同-L1
-r no-run-if-empty 当xargs的输⼊为空的时候则停⽌xargs,不⽤再去执⾏了。
-s num 命令⾏的最⼤字符数,指的是 xargs 后⾯那个命令的最⼤命令⾏字符数。
-L num 从标准输⼊⼀次读取 num ⾏送给 command 命令。
-l 同 -L。
-d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这⾥修改的是xargs的分隔符。
-x exit的意思,主要是配合-s使⽤。。
-P 修改最⼤的进程数,默认是1,为0时候为as many as it can ,这个例⼦我没有想到,应该平时都⽤不到的吧。

redis 批量删除key

cat bigkey.txt | xargs -L 1 redis-cli -h 127.0.0.1 -p 6379 del

cat bigkey.txt | xargs -i -n1 redis-cli -h 127.0.0.1 -p 6379 del {} 

cat bigkey.txt | xargs -i redis-cli -h 127.0.0.1 -p 6379 del {} 

 

delkey.txt:

del aa

del bb

cat delkey.txt | xargs -L1 bash -c 'redis-cli -h 127.0.0.1 -p 6379 -c $0 $1'

cat delkey.txt | xargs -i bash -c 'redis-cli -h 127.0.0.1 -p 6379 -c $0 $1' {}

redis 大key

一般来说,string类型控制在10KB以内,hash、list、set、zset元素个数不要超过5000(超过5000了可以采用分拆思想)

redis性能优化

Redis 按照Key前缀导出数据,导入到另一个 Redis 中

如何组合使用 awk/xargs 来读取文本的多个字段,作为命令参数执行命令

 
喜欢 0
分享