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))

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

相关推荐
techdashen11 分钟前
一个徽章坏了,顺带扯出了 2.3 万个 feature
数据库·mysql
2301_8148098613 分钟前
CSS Grid布局如何解决图片溢出网格单元_设置object-fit与网格尺寸.txt
jvm·数据库·python
魂梦翩跹如雨23 分钟前
数据库的“契约” —— 约束(Constrains)
java·数据库·mysql
m0_6784854524 分钟前
如何在Bootstrap中自定义Modal的弹出动画效果
jvm·数据库·python
与衫30 分钟前
[特殊字符] 解决 DataHub 无法解析复杂 SQL 血缘的问题(gsp-datahub-sidecar 实测)
数据库·sql
m0_4939345332 分钟前
CSS如何禁止子元素浮动影响父级_设置父容器BFC属性
jvm·数据库·python
weixin_5860614634 分钟前
Golang怎么安装和配置开发环境_Golang环境搭建完整教程【总结】
jvm·数据库·python
m0_493934531 小时前
html标签怎么避免标签嵌套错误_div不能放在p内原因【详解】
jvm·数据库·python
2301_782659181 小时前
Go语言goroutine调度原理_Go语言GMP调度模型教程【高效】
jvm·数据库·python
qq_334563551 小时前
Layui layer弹窗如何实现居中显示
jvm·数据库·python