在redis中有del方法,可以指定单个key,或者多个key。但是不能指定partten进行模糊匹配删除。
- 正好redis内置了lua解释器,那么我们通过一段lua脚本来批量删除指定前缀的key。
找到redis目录,进入src目录,使用./redis-cli登陆
默认进入的是6379这个实例,我们是需要进入到7379这个实例,可以通过 -h host -p port来指定ip和端口
通过如下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_*'
注意:但是KEYS操作在线上是禁止使用的!
因为当数据量很大的时候keys命令会导致阻塞,所以请使用scan命令进行遍历。