phpsredisを使用してKEYSをSCANに置き換えます。phpredisでの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 documentationによると、私はキーを使用しての欠点を回避するために、検索をページ付けするためにSCANを使用しています。
実際には、上記のコードを使用すると、単なる単価に比べて3倍のコストがかかります$redis->keys()
私は何か間違っているのだろうか、またはKEYSの脅威を避けるためにスピードを払わなければならないのでしょうか?グローバルスペースキーを反復しながら、そのブロック全体のサーバは、その後、何の議論もありませんので、私は完全に私のデシベルに400K +キーを持つ
注意し、本番環境でkeys
を使用して以来4つのmykey:*
キー
確かに、データベースは私のものではなく、私もレディスには新しく、あなたの答えは私にヒントを与えてくれます。私の目標を達成するためには、もっと深く掘り下げていく必要があります。 多くの感謝 –
@LoiDangええ、そう簡単ではありません。ところで、レディスの間違いは払うことができます。 Redisを効率的に使用できるようにするには、実際には適切なデータベースが必要です –