中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

php中redis批量刪除key的方法是什么

發布時間:2020-08-28 14:42:05 來源:億速云 閱讀:745 作者:小新 欄目:關系型數據庫

小編給大家分享一下php中redis批量刪除key的方法是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

php redis刪除key的方法:首先使用scan命令增量迭代的方式遍歷出以【XX】為前綴的key;然后通過unlink函數刪除指定的key即可。

php中redis批量刪除key的方法是什么

php redis批量刪除key

摘要

使用scan命令增量迭代的方式遍歷出以XX為前綴的key,然后刪除

簡介

在實際開發中,一不小心redis就會混入一些無用的數據,比如某位大哥忘記給加上緩存時間,或者因為業務修改需要將數據結構list改為zset,之前的緩存就沒用了,但是過期時間有點長,這時候就需要批量刪除key。如果使用keys命令遍歷出符合條件的keys,會阻塞redis的其他操作,在生產環境是肯定不行的,于是祭出scan命令大殺器。

代碼

/**
  在redis集群中,scan命令需要指定節點。還需要注意,要連接主節點。
**/
$redis = new \Redis();
$timeout = 2.5;
$ip = '127.0.0.1';
$redisConfArr = [
    [$ip, 8001],
    [$ip, 8002],
    [$ip, 8003]
];
foreach ($redisConfArr as $redisConf) {
    $redis->pconnect($redisConf[0], $redisConf[1], $timeout);
    //默認SCAN_NORETRY情況下有可能會返回空數組,設置成SCAN_RETRY,如果是空數組的話,將不返回繼續掃描下去
    $redis->setOption(\Redis::OPT_SCAN, \Redis::SCAN_RETRY);
    $it = NULL;
    while ($arr_keys = $redis->scan($it, CacheKeyConfig::CachePre.'*')) {
        if (is_array($arr_keys)) {
            //推薦使用unlink函數,非阻塞刪除,刪除大key時很好用,但是它需要redis版本>=4.0
            $result = $redis->del($arr_keys);
                echo $result . PHP_EOL;
        }
    }
    echo "OK!" . PHP_EOL;
}

以上是php中redis批量刪除key的方法是什么的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

武清区| 顺平县| 巢湖市| 宾川县| 泾阳县| 兴安县| 锡林郭勒盟| 湟中县| 巢湖市| 孝昌县| 凌云县| 阿勒泰市| 苍南县| 旺苍县| 宽甸| 嘉定区| 莲花县| 新干县| 汝南县| 神农架林区| 马尔康县| 景东| 科尔| 西林县| 遂平县| 漠河县| 海兴县| 平利县| 上思县| 五原县| 汉源县| 安义县| 姚安县| 巨野县| 永善县| 宁化县| 黄龙县| 玉田县| 隆昌县| 罗平县| 镇雄县|