lua脚本语言批量删除模糊查询的key

1. DEL 直接加键名称

DEL key1 key2 key3

127.0.0.1:6379>  DEL site_msg_99973  false site_msg_99974   false site_msg_99979false

 

 

2. 批量删除key

可用keys ‘str*’ 列出要删除的key,接linux管道删除(linux命令行执行)

根据通配符查看待删除的key

redis-cli KEYS "site_msg_999*”

 

 

接linux管道删除之

redis-cli KEYS "site_msg_999*"|xargs redis-cli DEL

 

 

3.更好的方式

keys * 命令在数据量很大的情况下,直接在redis cli中执行会严重影响服务器性能,更好的方式是在lua脚本中执行

eval方式执行redis lua

lua方式通配符查找

redis-cli eval "return redis.call('keys','site_msg_888*')” 0

lua方式通配符删除

eval "return redis.call('del',unpack(redis.call('keys',ARGV[1])))" 0 site_msg_888*

https://www.jianshu.com/p/cc5f83d4ddfb 可以参考这个,以上命令可能执行不对

以下是实践命令 1 模糊删除 eval "return redis.call('del',unpack(redis.call('keys','chedui_a_*')))" 0

2 查完后循环 eval "local ks =redis.call('keys','chedui_a_*') for i=1,#ks do local val = redis.call('GET', ks[i]) redis.call('set',ks[i],'3333') end return 'ok'" 0

3 注意不同key的类型

原文地址:https://www.cnblogs.com/tnt-33/p/10820705.html