Redis批量删除,redis自动删除

  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

Redis批量删除,redis自动删除