【转】批量删除redis中的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
?
但是如果key中有各種轉義字符,例如如下的key需要批量刪除,第二種方法就無法實現刪除,需要用方法3
"newmobile:type:list:1{\"lastid\":0,\"limit\":20,\"offset\":60,\"sortName\":\"\",\"sortOrder\":\"asc\"}"?
3.更好的方式
keys * 命令在數據量很大的情況下,直接在redis cli中執行會嚴重影響服務器性能,更好的方式是在lua腳本中執行
eval方式執行redis lua
lua方式通配符查找
redis-cli eval "return redis.call('keys','newmobile:type:list*')" 0
lua方式通配符刪除
redis-cli -hxxx -pxxx -a 'xxx' eval "return redis.call('del',unpack(redis.call('keys',ARGV[1])))" 0 'newmobile:type:list*'
?
未完待續。。。
?
【轉自】:http://gccmx.blog.51cto.com/479381/1611419
?
轉載于:https://www.cnblogs.com/zhzhang/p/7130995.html
總結
以上是生活随笔為你收集整理的【转】批量删除redis中的key的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转 让NET C# 程序独立运行(脱离
- 下一篇: 钉钉扫码登录的实现 与OAUTH2.0