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*