首頁  >  文章  >  資料庫  >  redis批量刪除某種規則的key

redis批量刪除某種規則的key

王林
王林轉載
2021-03-11 09:37:272177瀏覽

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資料庫教學

#

以上是redis批量刪除某種規則的key的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除