Redis SCAN Command

Redis Keys

The Redis SCAN command is used to iterate over the keys in the database.

The SCAN command is a cursor-based iterator. Each time it is called, it returns a new cursor to the user. The user needs to use this new cursor as the cursor parameter of the SCAN command in the next iteration to continue the previous iteration process.

SCAN returns an array containing two elements. The first element is the new cursor used for the next iteration, and the second element is an array containing all the elements that were iterated over. If the new cursor returns 0, it indicates that the iteration has ended.

Related commands:

  • SSCANThis command is used to iterate over elements in set keys.
  • HSCANThis command is used to iterate over key-value pairs in hash keys.
  • ZSCANThis command is used to iterate over elements in sorted sets (including element members and element scores).

Syntax

The basic syntax of the Redis SCAN command is as follows:

SCAN cursor [MATCH pattern] [COUNT count]
  • cursor - The cursor.
  • pattern - The matching pattern.
  • count - Optional. Used to specify the number of keys returned per iteration. The default value is 10.

Available Versions

>= 2.8.0

Return Value

An array list.

Example

Use the SCAN command to iterate:
redis 127.0.0.1:6379> scan 0   # 使用 0 作为游标,开始新的迭代
1) "17"                        # 第一次迭代时返回的游标
2)  1) "key:12"
    2) "key:8"
    3) "key:4"
    4) "key:14"
    5) "key:16"
    6) "key:17"
    7) "key:15"
    8) "key:10"
    9) "key:3"
   10) "key:7"
   11) "key:1"
redis 127.0.0.1:6379> scan 17  # 使用的是第一次迭代时返回的游标 17 开始新的迭代
1) "0"
2) 1) "key:5"
   2) "key:18"
   3) "key:0"
   4) "key:2"
   5) "key:19"
   6) "key:13"
   7) "key:6"
   8) "key:9"
   9) "key:11"

Redis Keys

Other extensions