official Redis documentationを含むいくつかのソースは、KEYS
コマンドを使用するとブロックされる可能性があるため、本番環境では悪い考えです。データセットのおおよそのサイズがわかっている場合、SCAN
はKEYS
よりも利点がありますか?SCAN対RedisのKEYSパフォーマンス
例えば、data:number:X
という形式の100個以下のキーを持つデータベースを考えてみましょう。ここで、X
は整数です。これらのすべてを取得したい場合は、コマンドKEYS data:number:*
を使用します。これはSCAN 0 MATCH data:number:* COUNT 100
を使用するよりも大幅に遅くなりますか?あるいは、このような状況では2つのコマンドが本質的に同等ですか? SCAN
は、予期せず大きなセットが返されるシナリオに対して保護するため、KEYS
よりも好ましいと言えるでしょうか?
ページネーションを使用していない場合は、パフォーマンスの差はありません。 –