掃描 Redis Keyspace

Redis 提供 SCAN 命令來迭代匹配特定模式的資料庫中的鍵。Redis 在 SCAN 命令中支援 glob 樣式模式匹配。

SCAN 命令在 Redis 鍵空間上提供基於遊標的迭代器。SCAN 的迭代呼叫序列開始於使用者在將 cursor 引數設定為 0 的情況下進行呼叫。該呼叫的結果是一批專案和一個更新的遊標,它被提供給下一次呼叫 SCAN。此迭代繼續,直到 Redis 返回 0 遊標。

以下 Python 函式演示了 SCAN 的基本用法:

def scan_keys(r, pattern):
    "Returns a list of all the keys matching a given pattern"

    result = []
    cur, keys  = r.scan(cursor=0, match=pattern, count=2)
    result.extend(keys)
    while cur != 0:
        cur, keys = r.scan(cursor=cur, match=pattern, count=2)
        result.extend(keys)
        
    return result

SCAN 命令是搜尋資料庫中金鑰的推薦方法,建議使用 KEYS *命令。