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

redis批量刪除某種規則的key

王林
發布: 2021-03-11 09:37:27
轉載
2268 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板