redis如何批量删除key

在redis-cli或者rdm可视化工具中删除

执行命令行:DEL keyword1:keyword2:Id:7316*

表示删除形如 keyword1:keyword2:Id:7316123222,keyword1:keyword2:Id:7316123223的key,在redis中存储的key一般是前面都相同的,后面为变量

lua脚本删除

如果数据量巨大时,比如几百万key或者十几个G左右的数据,执行del会导致redis卡死和效率过低

此时通过lua脚本可以高效的批量删除key

本文通过python示例,执行lua脚本批量删除key

python 复制代码
import redis
import time
# 连接到 Redis
r = redis.Redis(host='localhost', port=3306, password="password",db=0)

# 定义 Lua 脚本
lua_script = """
local keys = redis.call('KEYS', 'keyword1:keyword2:Id:7316*')
for _, key in ipairs(keys) do
    redis.call('DEL', key)
end
return #keys
"""
start = time.time()

# 执行 Lua 脚本
result = r.eval(lua_script, 0)
end = time.time()
time_range = float(end-start)
print(f"Deleted {result} keys.")
print("耗时{} s".format(time_range))

执行完毕后等待删除完毕即可。

相关推荐
每天都要进步哦10 小时前
MySQL快速入门指南:从零基础到基本操作
数据库·mysql·oracle
bjzhang7511 小时前
mysql 常用命令
数据库·mysql
计算机安禾11 小时前
【算法分析与设计】第48篇:流算法与数据概要技术
java·服务器·网络·数据库·算法
情绪总是阴雨天~11 小时前
基于 Docker 的 Milvus + Redis 本地开发环境部署完全指南
redis·docker·milvus
数据库小学妹11 小时前
时序数据库核心原理拆解:写入吞吐、压缩存储、融合分析全链路分析
数据库·经验分享·时序数据库·dba
我是一颗柠檬11 小时前
【Redis】Redis缓存应用实战Day12(2026年)
数据库·redis·缓存
zzz_236811 小时前
【Redis】Redis 面试深度系列
数据库·redis·面试
代码中介商11 小时前
HTTP 完全指南(二):缓存机制深度详解
网络协议·http·缓存
Solis程序员11 小时前
解决双写不一致!Canal+Outbox+Kafka 高可靠事件驱动架构
redis·分布式·架构·kafka·canal
Java_2017_csdn11 小时前
在 Java 中,MessageFormat.format() 和 String.format() 函数对比?
java·开发语言·前端·数据库