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加入群聊,欢迎一起研究技术
转载请注明:php中使用scan替换keys查找redis 出自老鄢博客 | 欢迎分享