「提效脚本 redis」 使用Lua批量删除key

在redis里面可以使用keys aa* 进行匹配所有的key,却没办法直接删除所有匹配的key。

所以可以使用lua脚本进行增强。

以删除 suggest* 开头的key为例。

shell 复制代码
eval  "local keys = redis.call('keys', 'suggest*')  for _, key in ipairs(keys) do  redis.call('del', key) end" 0

脚本分析:

lua 复制代码
-- 删除 Redis 中所有已有 'suggest' 前缀的键值对
local keys = redis.call('keys', 'suggest*')
for _, key in ipairs(keys) do
  redis.call('del', key)
end

这是 Redis 的 Lua 脚本语言,意思是:

  1. 使用 Redis 的 eval 命令执行该脚本。
  2. 获取所有以 'suggest' 开头的键名,赋值给 keys 变量。使用 Redis 的 keys 命令实现。
  3. 遍历 keys 变量中的每个键名 key,并执行 redis.call('del', key),即删除对应的键值对。
  4. 返回值 0 表示无需传递参数。

总体来说,这是一个用于删除 Redis 中所有已有 'suggest' 前缀的键值对的脚本。

相关推荐
Seven971 小时前
Redis是如何进行内存管理的?缓存中有哪些常见问题?如何实现分布式锁?
redis
IAtlantiscsdn1 小时前
Redis Stack扩展功能
java·数据库·redis
没有bug.的程序员1 小时前
Redis 大 Key 与热 Key:生产环境的风险与解决方案
java·数据库·redis·缓存·热key·大key
王维志1 小时前
LiteDB详解
数据库·后端·mongodb·sqlite·c#·json·database
wuyunhang1234561 小时前
Redis----缓存策略和注意事项
redis·缓存·mybatis
2301_815357702 小时前
parameterType和@Param注解的区别
java·开发语言·数据库
程序猿多布2 小时前
XLua教程之热补丁技术
unity·c#·lua·xlua
零雲2 小时前
除了缓存,我们还可以用redis做什么?
数据库·redis·缓存
cyforkk2 小时前
MySQL 唯一约束:从基础到实战,解决数据重复的核心工具
数据库·mysql
java搬砖工-苤-初心不变2 小时前
OpenResty 限流方案对比:lua_shared_dict vs Redis
redis·lua·openresty