redis批量刪除某種規則的key

redis批量刪除某種規則的key

一、前言

在工作中經常遇到需要批量刪除某種規則的key的情況,如緩存的課程數據“course-課程uid”,課程uid是變量,我們需要刪除類似于“course-*”這樣的數據。但是,redis雖然有提供批量查詢這一類key的命令keys,卻并沒有提供批量刪除某種類型key的命令。

現在將解決方法整理出來,希望可以幫助到大家。

二、解決方案

先看看我們怎么解決。

1、先進入redis的客戶端

cd?redis所在目錄/src ./redis-cli

2、初始化數據,模擬數據

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、通過keys命令可以看到,現在有上面的三個key

127.0.0.1:6379>?keys??course-* 1)?"course-3" 2)?"course-2" 3)?"course-1"

4、退出redis的客戶端

127.0.0.1:6379>?exit

5.1、本地批量刪除key

./redis-cli?keys?"course-*"?|?xargs?./redis-cli?del

此處剛剛 course-*? 相關的3個key已經被刪除了

原理解析:

先通過redis客戶端執行了keys命令,模糊搜索出所有的key,通過xargs命令,將前面查詢出來的key作為后面redis的del命令的輸入

最終執行的結果可以理解成

(學習視頻分享:redis視頻教程

1、模糊查詢

keys?"course-*"

查詢出上面的course-1 course-2 course-3 這三個key

2、執行刪除key

del的三個key來自前面的keys查詢

del?course-1?course-2??course-3

5.2、遠程批量刪除key

經常我們開發的時候,redis都是公用的,可能redis不在本地我們可以通過redis客戶端遠程進行刪除

./redis-cli?-h?redis所在服務器ip?-p?端口?keys?"course-*"?|xargs?./redis-cli?-h?redis所在服務器ip?-p?端口?del

三、補充知識

1、遠程某臺機子的redis

以下實例演示了如何連接到主機為 127.0.0.1,端口為 6379 ,密碼為 mypass 的 redis 服務上。

redis-cli?-h?127.0.0.1?-p?6379?-a?"mypass"

2、xargs命令

xargs命令是給其他命令傳遞參數的一個過濾器,也是組合多個命令的一個工具。 詳情課件?http://man.linuxde.net/xargs

相關推薦:redis視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享