scan 命令允許迭代 redis 鍵值對。它使用游標跟蹤進度,支持模式匹配和指定每次迭代返回的鍵值對數量。使用 scan 0 開始迭代,隨后的調用使用上次返回的游標。該命令返回一個游標和包含檢索到的鍵值對的數組。scan 是無阻塞的,并且每次迭代最多返回 1000 個鍵值對。完成迭代需要在游標變為 0 時停止。
SCAN 命令在 redis 中的使用
概述
SCAN 命令用于迭代 Redis 數據庫中的鍵值對。它提供了一種高效且可擴展的方式來遍歷大型數據集。
語法
SCAN cursor [MATCH pattern] [count count]
參數說明
- cursor:用于跟蹤迭代進度的游標。初始值應為 0。
- MATCH pattern:用于匹配要檢索的鍵的模式。
- COUNT count:指定每次迭代中要返回的鍵值對數量。
用法
使用 SCAN 命令時,需要指定一個游標作為起始點。首次調用時,游標應為 0。后續調用應使用上一次調用返回的游標。
該命令將返回一個包含兩個元素的數組:
- 游標:用于繼續迭代的更新游標。
- 值:一個數組,其中包含每次迭代中檢索的鍵值對。
示例
# 迭代所有鍵值對 SCAN 0 # 迭代以 "foo" 開頭的鍵 SCAN 0 MATCH foo* # 每次迭代返回 10 個鍵值對 SCAN 0 COUNT 10
注意事項
- SCAN 命令是無阻塞的,這意味著它不會阻止服務器執行其他操作。
- SCAN 命令每次迭代最多返回 1000 個鍵值對。使用 COUNT 參數可以控制每次迭代返回的鍵值對數量。
- 要完成迭代,需要在游標為 0 時停止。