scan
SCAN
Redis 開発者教育の申込
|
Redis 定期点検/技術サポートRedis Technical Support |
Redis エンタープライズサーバーRedis Enterprise Server |
|---|
Key を一定単位の個数ずつ照会
使い方は scan cursor です。
KEYS は一度にすべての keys をスキャンして照会するのに対し、scan は一度に約 10 個ずつ照会します。
KEYS は key 数が多い場合に処理時間がかかり、その間ほかのコマンドを処理できません。そのため代替として出たのが SCAN です。
key が多ければ次のカーソル(cursor)を指定して繰り返して照会します。すべて照会した場合 next cursor は 0 です。
SSCAN, ZSCAN, HSCAN は key に属する member を照会するのに対し、SCAN は DB 内のすべての key を照会します。
Example
| コマンド> | scan 0 |
| 結果> | next cursor -> 1024 0) key001 1) key002 2) key005 ... 11) key021 |
| コマンド> | scan 1024 |
| 結果> | next cursor -> 18944 0) key031 1) key022 2) key035 ... 9) key151 |
MATCH key_pattern オプションの使用
使い方は scan cursor MATCH pattern です。
指定した key_pattern に合う key だけを照会します。
GLOB style pattern です。
Example
| コマンド> | scan 0 match key* |
| 結果> | next cursor -> 1024 0) key001 1) key002 2) key005 ... 11) key021 |
COUNT count オプションの使用
使い方は scan cursor COUNT 10 です。
照会される key 数が指定した count と常にちょうど一致するわけではありません。処理時間を考慮して個数を調節します。
Example
| コマンド> | scan 0 count 10 |
| 結果> | next cursor -> 1024 0) key001 1) key002 2) key005 ... 11) key021 |
TYPE type オプションの使用
使い方は scan cursor TYPE string です。
TYPE を指定すると該当 type のキーだけを照会します。
Example
| コマンド> | scan 0 type string |
| 結果> | next cursor -> 1024 0) key001 1) key002 2) key005 ... 11) key021 |
構文
SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]
- version 2.8.0 から使用できます。
TYPE オプションは Redis-6.0.0 から使用できます。 - 時間計算量は O(N) です。
| 関連コマンド | KEYS, SSCAN, ZSCAN, HSCAN |
| Clients for Java | Jedis, Lettuce, Redisson | Clients for C | Hiredis |
| << RM | SCAN | SORT >> |
|---|
Email
返事がかかってなれば、メールでお知らせします。
