在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'
前缀的键值对的脚本。