亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用redis如何實現批量刪除key

發布時間:2020-11-04 16:02:32 來源:億速云 閱讀:560 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關利用redis如何實現批量刪除key,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

redis批量刪除key

redis批量刪除key命令是:

redis-cli KEYS "$PATTERN" | xargs redis-cli DEL

在本人的實踐中,這條命令存在兩個問題:

1.redis-cli KEYS "$PATTERN"的結果會出現編號,不是純粹的key列表,如下所示:

[root@node1]# redis-cli keys "*"
1) ":default:is_blog_installed"
2) ":site-options:1-notoptions"

本人用的是Redis 5版本,未測試低版本Redis是否也會添加1),2)這樣的編號。可以想到,因為編號的存在,管道后DEL刪除的是錯誤的key;

2.如果key存在空格,管道后面的DEL將無法正確刪除。例如key是”123 4566″,傳送到管道后面刪除,就變成了刪除兩個key,與預期不符合。

經過一番研究,redis批量刪除key的正確命令是:

redis-cli --raw KEYS "$PATTERN" | xargs -I {} redis-cli DEL "{}"

重點有兩個,分別解決上述命令存在的問題:

  1. 使用 –raw 參數,去掉結果編號;
  2. xargs使用占位符,刪除key時將整個結果傳過去,避免了空格問題。
     

改正后的命令在本人的情況下運行正常,就是刪除兩百多萬個key有點慢,花了半個多小時。

redis批量移動key

如果你知道有用key的模式,并且有用key數量很小,可以通過redis批量移動key,然后flushdb的方法快速刪除,效率比上文提到的批量刪除大量無用key高很多。

操作方法如下:

  1. 批量移動key:redis-cli --raw KEYS "$PATTERN" | xargs -L1 -I{} redis-cli MOVE {} 1,其中命令最后的1是備份數據庫的編號;
  2. 清空當前數據庫:redis-cli flushdb
  3. 還原key:redis-cli -n 1 --raw KEYS "$PATTERN" | xargs -L1 -I{} redis-cli MOVE {} 0
     

注意清空當前數據庫的命令是 flushdb,不能用 flushallflushdbflushall的區別是:flushdb 只會清空當前數據庫的數據,而flushall會清空當前redis實例的所有數據。

redis-cli參數

上述命令使用redis-cli工具完成,在編號為0的默認數據庫上操作。對于需要密碼、遠程redis主機的情況,redis-cli有如下有用參數:

-n:操作的數據庫;

-a:redis數據庫密碼

-h:redis主機ip,通過-h可以遠程批量刪除key

-p:redis端口

上述就是小編為大家分享的利用redis如何實現批量刪除key了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

木里| 曲麻莱县| 齐齐哈尔市| 凤山市| 久治县| 江源县| 南投县| 德阳市| 丽水市| 巨鹿县| 上思县| 新乐市| 光山县| 清水河县| 治县。| 中卫市| 永年县| 涟水县| 云南省| 正宁县| 柳河县| 永泰县| 泗阳县| 彭泽县| 蓬莱市| 炎陵县| 梅河口市| 正镶白旗| 肇州县| 白水县| 阆中市| 西乌珠穆沁旗| 太湖县| 阿拉善盟| 肥乡县| 翁源县| 大庆市| 东兴市| 长兴县| 忻城县| 山西省|