Linux上批量删除redis中指定前缀的key

在redis中有del方法,可以指定单个key,或者多个key。但是不能指定partten进行模糊匹配删除。

  1. 正好redis内置了lua解释器,那么我们通过一段lua脚本来批量删除指定前缀的key。

找到redis目录,进入src目录,使用./redis-cli登陆

a5f19202a3164b67dbd2a9044458d9eabc3.jpg

默认进入的是6379这个实例,我们是需要进入到7379这个实例,可以通过 -h host -p port来指定ip和端口

817996b997b96bc28f636b803cd11a391a6.jpg

通过如下lua脚本批量删除。

EVAL "local keys = redis.call('keys', ARGV[1]) for i=1,#keys,5000 do redis.call('del', unpack(keys, i, math.min(i+4999, #keys))) end return #keys" 0 'cloudwork_idx_*'

ccdb98791e00569ebedbf3fe6b0d5b876f6.jpg

注意:但是KEYS操作在线上是禁止使用的!

因为当数据量很大的时候keys命令会导致阻塞,所以请使用scan命令进行遍历。

 

转载于:https://my.oschina.net/u/3863046/blog/1928541

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值