#
在刪除快取的時候,我們在某些場景中需要大量刪除,但不確定特定的key值,可透過符合的方式查詢後刪除。
但是使用keys會導致redis伺服器宕機。
慎用。 。 。
一般公司也會停用keys等比較敏感的指令的。
所以工作中會使用scan指令來進行匹配查詢
1 | SCAN cursor [MATCH pattern] [ COUNT count ]
|
登入後複製
例如
1 | # 从游标 0 开始扫描 匹配 test1:* 的键值,一次扫描1000条scan 0 match test1:* count 1000
|
登入後複製

1 | 1) 表示下一次扫描的游标值 ,命令行显示的是字符串类型的。2)表示本次扫描匹配到的键值列表
|
登入後複製
用php程式碼怎麼實作呢,舉範例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function getKeysByPattern( $pattern )
{
$keysList = [];
while (true){
$keys = $client ->scan( $iterator , $pattern ,1000);
$keysList = array_merge ( $keysList , $keys ??[]);
if ( $iterator === 0) {
break ;
}
if ( $iterator === null) {
$iterator = "0" ;
}
}
$keysList = array_unique ( $keysList );
return keysList;
}
|
登入後複製
推薦學習:《redis影片教學》
#
以上是redis的scan怎麼用? (附程式碼實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!