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

溫馨提示×

溫馨提示×

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

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

怎么在Redis里按模式刪除數據

發布時間:2021-10-24 09:42:15 來源:億速云 閱讀:132 作者:小新 欄目:系統運維

小編給大家分享一下怎么在Redis里按模式刪除數據,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一臺Redis服務器在很短的時間里消耗了幾十個G的內存,最終因為SWAP而宕機。因為這臺服務器的社會背景比較復雜,所以一時無法判斷犯罪嫌疑人到底是誰。

最開始的直覺是認為肯定有人保存了大體積的數據,于是問題就變成了找出哪些鍵占用的空間比較大,DBA同事用了redis-rdb-tools等工具來分析數據文件。可惜的是雖然找到了一些大體積的鍵,但最終都排除了嫌疑,問題似乎陷入了僵局。

在被直覺帶入死胡同之后,我們開始調整調查的角度:即便一個鍵本身占用的空間并不大,但是如果相同模式的鍵數量很多的話,那么合計起來一樣會占用大量空間,于是問題就變成了找出哪些相同模式的鍵占用的空間比較大。這次我不想用什么工具,而是打算在測試服務器上一邊刪除可疑鍵一邊查看內存變化情況:

shell> /path/to/redis-cli keys foo:* | xargs /path/to/redis-cli del

悲催的是一運行這個命令服務器就掛了!因為數據太多了,所以KEYS受不了。此時應該使用SCAN,它有游標的概念,每次迭代只涉及很少的數據。

直接在命令行使用SCAN有些麻煩,于是我用了PHP:

<?php

$redis = new Redis();
$redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);

$match = 'foo:*';
$count = 10000;

while ($keys = $redis->scan($it, $match, $count)) {
    $redis->del($keys);
}

?>

在刪除的同時注意監控內存變化情況,就能確認問題了:

shell> watch -d -n 1 '/path/to/redis-cli info | grep memory'

至于可疑鍵的獲取,我是瞎蒙的,簡單通過MONITOR或者SCAN獲取采樣數據即可,另外從此案例看,監控鍵總數的變化幅度是很重要的,從INFO里能拿到它。

以上是“怎么在Redis里按模式刪除數據”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

长武县| 贵溪市| 元江| 左云县| 满洲里市| 新野县| 新邵县| 南城县| 郑州市| 嫩江县| 马尔康县| 九江县| 民丰县| 仙游县| 金阳县| 庄河市| 寿光市| 鲜城| 岳西县| 玛沁县| 文化| 高碑店市| 文登市| 龙南县| 台州市| 灵璧县| 济源市| 巴彦淖尔市| 五大连池市| 灵川县| 竹山县| 北宁市| 兰州市| 霍城县| 定安县| 临猗县| 米泉市| 洛阳市| 阿合奇县| 中牟县| 琼结县|