redis根据key模糊删除

时间:2024-03-31 08:23:57

redis根据key模糊删除

编写lua脚本,为a.lua

local dbnum = ARGV[1] -- 获取数据库索引作为参数  
local pattern = ARGV[2] -- 获取键的模式作为参数  
  
-- 切换到指定的数据库  
redis.call('SELECT', dbnum)  
  
-- 使用 KEYS 命令获取所有匹配的键  
local keys = redis.call('KEYS', pattern)  
  
-- 遍历键列表并删除它们  
for i, key in ipairs(keys) do  
    redis.call('DEL', key)  
end  
  
-- 返回被删除的键的数量  
return #keys

实际是查询出符合的key,变量删除

执行

删除第15个个库中key为demo:one开头的所有数据

redis-cli --eval a.lua , 15 demo:one*

如果是远程redis

redis-cli -h 192.168.1.2 -p 3306 --eval a.lua , 15 demo:one*