xargs: Warning: a NUL character occurred in the input.

今天遇到一个问题,批量删除redis里的keys报错。原因是java程序在做序列化的时候生成了一些特殊的key!

redis数据如下:
xargs: Warning: a NUL character occurred in the input.
批量删除的脚本如下:

redis-cli -h 192.168.11.156 -p 6379 keys "*chnl-stock-mda-*" | xargs redis-cli -h 192.168.11.156 -p 6379 del

但是执行后报Warning且数据未删除:

xargs: Warning: a NUL character occurred in the input.  It cannot be passed through in the argument list.  Did you mean to use the --null option?

再次Google,发现一个解决办法:
redis支持 lua脚本,调用lua脚本执行

local key=KEYS[1]
local list=redis.call("keys", key);
for i,v in ipairs(list) do
    redis.call("del", v);
end

保存为de.lua文件
执行命令:

redis-cli -h 192.168.11.156 -p 6379 --eval ./de.lua "*chnl-stock-mda-*" 

再次登录redis查看,完全删除!

shunzi
  • 本文由 发表于 2019-03-2617:23:30
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
记一次Redis集群搭建 BLOG

记一次Redis集群搭建

最近同事需要搭建一套redis集群做测试,完了给我一台机器,让我搭建一下。本着学习的目的,果断搞起。 期间踩了好多坑,特此记录一下,过程如下: OS版本是:Centos 6.6 x86_64 redi...
deepin linux v20.2系统安装 BLOG

deepin linux v20.2系统安装

安装Deepin V20.2系统 最近因为学习需要,换了一台电脑,完了又是系统的安装。总之,docker环境折腾我了一个多星期。最后完美搞定。 ............ shunzi@thinkpad...
deepin linux V20系统安装 BLOG

deepin linux V20系统安装

安装系统 系统安装就不说了,网上一大把。以前用deepin linix 15.11系统非常舒服,后来因为办公环境需要,期间又换回windows,目前因为彻底能用linux办公了。一个字爽~ 系统跟新 ...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: