php中使用scan替换keys查找redis

发布时间:2020-10-24 12:00:53 阅读:1274次

redis是知名的nosql数据库,

我们在使用redis时经常要查看所有的以某某开头的key

以前经常用keys test*

后来看到这样会加重redis负担,更严重时会导致redis宕机

我们该如何正确的查看以test打头的所有key

方法1

<?php
$redis = new Redis();
$redis->connect('localhost', 6379);
$redis->setOption(Redis::OPT_SCAN,Redis::SCAN_RETRY);
$iterator = null;
while ($keys = $redis->scan($iterator, 'test*')) {
    foreach ($keys as $key) {
        echo $key . PHP_EOL;
    }
}

方法2

<?php
$redis = new Redis();
$redis->connect('localhost', 6379);
 
$iterator = null;
while (true) {
    $keys = $redis->scan($iterator, 'test*');
    if ($keys === false) {//迭代结束,未找到匹配pattern的key
        return;
    }
    foreach ($keys as $key) {
        echo $key . PHP_EOL;
    }
}

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:php中使用scan替换keys查找redis 出自老鄢博客 | 欢迎分享