91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

利用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

金昌市| 沙坪坝区| 抚州市| 乌兰浩特市| 行唐县| 饶河县| 运城市| 怀化市| 高淳县| 拉萨市| 临桂县| 博湖县| 泗水县| 辛集市| 巴彦淖尔市| 通城县| 环江| 法库县| 建宁县| 沐川县| 太谷县| 肇东市| 利辛县| 崇明县| 于都县| 星子县| 呼玛县| 龙江县| 卓尼县| 布尔津县| 乐都县| 台州市| 衡水市| 萝北县| 巴彦淖尔市| 日照市| 关岭| 永修县| 绍兴市| 屏山县| 内黄县|