redis批量刪除key 遠程批量刪除key

1、遇到的問題linux

  在開發的過程當中,常常會遇到要批量刪除某種規則的key,如緩存的課程數據「course-課程uid」,其中課程uid是變量,咱們須要刪除"course-*"這一類的數據,可是這裏就坑了,redis有提供批量查詢一類key的命令keys,可是沒有提供批量刪除某種類型key的命令。redis

2、解決方案緩存

  先看看咱們怎麼解決。服務器

一、先進入redis的客戶端工具

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

二、初始化數據,模擬數據ui

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

三、經過keys命令能夠看到,如今有上面的三個keyspa

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

四、退出redis的客戶端.net

127.0.0.1:6379> exit

5.一、本地批量刪除keycode

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

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

原理解析:

  先經過redis客戶端執行了keys命令,模糊搜索出全部的key,經過xargs命令,將前面查詢出來的key做爲後面redis的del命令的輸入

最終執行的結果能夠理解成

 一、模糊查詢

keys "course-*" 

 

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

二、執行刪除key

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

del course-1 course-2  course-3    

5.二、遠程批量刪除key

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

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

 

3、補充知識

一、遠程某臺機子的redis

  如下實例演示瞭如何鏈接到主機爲 127.0.0.1,端口爲 6379 ,密碼爲 mypass 的 redis 服務上。

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

二、xargs命令

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

 

致謝:感謝您的耐心閱讀! 

相關文章
相關標籤/搜索