lua脚本批量删除Redis

442 阅读1分钟

1.编写lua脚本 del.lua

--选库
redis.call('select',1) --Db1库 
--获取传入的需要批量删除的key的前缀 --记住 lua的下标索引是从1开始 不是0 不是0 不是0 
local key = KEYS[1] 
--如果没有传至 跳过 
if( key ~= nil) then
    --这里通过keys查询出所有符合条件的数据
    local dataInfos = redis.call('keys',KEYS[1])
    --判断是否找到数据
    if(dataInfos ~= nil) then
        --循环删除 
        for i=1,#dataInfos,1 do 
            redis.call('del',dataInfos[i]) 
        end                
        --返回删除的行数  
        return #dataInfos 
    else  
        return 0  
    end
 else  
    return 0
 end

2.终端运行(可以连接阿里云Redis的服务器):

redis-cli -h host -a password -p 6379 --eval ./del.lua "fdzs_vroute_*"

3.完美,删除速度极快