phpredis を使用して KEYS を SCAN に置き換えています。
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
$it = NULL;
while($arr_keys = $redis->scan($it, "mykey:*", 10000)) {
foreach($arr_keys as $str_key) {
echo "Here is a key: $str_key\n";
}
}
redis のドキュメントによると、SCAN を使用して検索をページ分割し、KEYS を使用することの欠点を回避しています。
しかし、実際には、上記のコードを使用すると、単一のコードを使用するよりも 3 分の 1 のコストで$redis->keys()
済みます。
mykey:*
私のデータベースには40万以上のキーがあり、4つのキーがあることに注意してください