您好,登錄后才能下訂單哦!
這篇文章主要介紹redis批量刪除某種規(guī)則中和key的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
一、前言
在工作中經(jīng)常遇到需要批量刪除某種規(guī)則的key的情況,如緩存的課程數(shù)據(jù)“course-課程uid”,課程uid是變量,我們需要?jiǎng)h除類(lèi)似于“course-*”這樣的數(shù)據(jù)。但是,redis雖然有提供批量查詢(xún)這一類(lèi)key的命令keys,卻并沒(méi)有提供批量刪除某種類(lèi)型key的命令。
二、解決方案
先看看我們?cè)趺唇鉀Q。
1、先進(jìn)入redis的客戶(hù)端
cd redis所在目錄/src ./redis-cli
2、初始化數(shù)據(jù),模擬數(shù)據(jù)
127.0.0.1:6379> set course-1 1 OK 127.0.0.1:6379> set course-2 2 OK 127.0.0.1:6379> set course-3 3 OK
3、通過(guò)keys命令可以看到,現(xiàn)在有上面的三個(gè)key
127.0.0.1:6379> keys course-* 1) "course-3" 2) "course-2" 3) "course-1"
4、退出redis的客戶(hù)端
127.0.0.1:6379> exit
5.1、本地批量刪除key
./redis-cli keys "course-*" | xargs ./redis-cli del
此處剛剛 course-* 相關(guān)的3個(gè)key已經(jīng)被刪除了
原理解析:
先通過(guò)redis客戶(hù)端執(zhí)行了keys命令,模糊搜索出所有的key,通過(guò)xargs命令,將前面查詢(xún)出來(lái)的key作為后面redis的del命令的輸入
最終執(zhí)行的結(jié)果可以理解成
(學(xué)習(xí)視頻分享:redis視頻教程)
1、模糊查詢(xún)
keys "course-*"
查詢(xún)出上面的course-1 course-2 course-3 這三個(gè)key
2、執(zhí)行刪除key
del的三個(gè)key來(lái)自前面的keys查詢(xún)
del course-1 course-2 course-3
5.2、遠(yuǎn)程批量刪除key
經(jīng)常我們開(kāi)發(fā)的時(shí)候,redis都是公用的,可能redis不在本地我們可以通過(guò)redis客戶(hù)端遠(yuǎn)程進(jìn)行刪除
./redis-cli -h redis所在服務(wù)器ip -p 端口 keys "course-*" |xargs ./redis-cli -h redis所在服務(wù)器ip -p 端口 del
三、補(bǔ)充知識(shí)
1、遠(yuǎn)程某臺(tái)機(jī)子的redis
以下實(shí)例演示了如何連接到主機(jī)為 127.0.0.1,端口為 6379 ,密碼為 mypass 的 redis 服務(wù)上。
redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
2、xargs命令
xargs命令是給其他命令傳遞參數(shù)的一個(gè)過(guò)濾器,也是組合多個(gè)命令的一個(gè)工具。
以上是“redis批量刪除某種規(guī)則中和key的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。