在redis里面可以使用keys aa* 进行匹配所有的key,却没办法直接删除所有匹配的key。
所以可以使用lua脚本进行增强。
以删除 suggest* 开头的key为例。
eval "local keys = redis.call('keys', 'suggest*') for _, key in ipairs(keys) do redis.call('del', key) end" 0
脚本分析:
-- 删除 Redis 中所有已有 'suggest' 前缀的键值对
local keys = redis.call('keys', 'suggest*')
for _, key in ipairs(keys) doredis.call('del', key)
end
这是 Redis 的 Lua 脚本语言,意思是:
- 使用 Redis 的
eval命令执行该脚本。 - 获取所有以
'suggest'开头的键名,赋值给keys变量。使用 Redis 的keys命令实现。 - 遍历
keys变量中的每个键名key,并执行redis.call('del', key),即删除对应的键值对。 - 返回值
0表示无需传递参数。
总体来说,这是一个用于删除 Redis 中所有已有 'suggest' 前缀的键值对的脚本。