Redis批量删除,redis自动删除
项目中某个再说一遍的关键点下面有几十万条数据,用rdma(原始设备映射)工具删能卡死,于是用python(python语言)写了一个脚本来删,效果非常不错,推荐给大家
举个例子com:欧洲经委会:udata:爬升下面有几十万条数据,比如
com:UE cente:udata:climb:100001
com:UE cente:udata:climb:100001
com:欧洲货币联盟:udata:爬升:10000000
……
执行命令:
python 3 redis _ deletepy-D2-k com:UE cente:udata:攀登
-d 2:表示删除再说一遍第2个数据库,可以指定0-15分钟
-k:表示删除的关键点前缀
可以本地执行,也可以放到服务器上执行建议拿到服务器上执行,本地执行估计比较慢
拿到服务器上执行貌似也可以用再说一遍客户端:redis-CLI keys " com:UE cente:udata:climb * " xargs redis-CLI del,不过还是感觉我这个脚本更方便,特别是装在码头工容器里面的,或者没有权限登陆服务器的
redis_delete.py
# -*-编码:utf-8-*-导入重定向sysimport getopt主机=127.0.0.1 端口=6379 密码=
339 www百度一下com/more/
xxx 定义删除(键,数据库):r=redis .Redis(host=host,port=port,db=database,password=password,decode _ answers=true)list _ keys=r . keys(% s * % key)for key in list _ keys:r . delete(key)if _ _ name _= _ main _ :root _ path= is _ rename=true argv=sysargv[1:]if len(argv)1:print( redis _ deletepy-k key-d数据库)退出()#获取命令行参数try: opts,args=getptgetpt(argv, hk:d:,[kKey=, DD database=]),但getpt除外getpterror:print( redis _ deletepy-k key-d数据库)出口(2)用于选项,参数用于opts:if opt==-h:print( redis _ deletepy-k key-d数据库)exit()elif opt in(-k ,-kky ):key=arg elif opt in(-d ,-DD database ):database=arg delete(key,int(数据库))xxxxx
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。