Redis
 sql >> Datenbank >  >> NoSQL >> Redis

ioredis Schlüssel mit passendem Muster

Dies ist also der Beispielcode, der Ihnen eine allgemeine Vorstellung vermittelt. Sie können also zwei Dinge nutzen, die das Redis bietet. Die erste ist die KEYS-Funktion, die aufgrund ihrer O(N)-Komplexität nicht verwendet werden sollte. Dieses Beispiel verwendet den Scan-Befehl in einem Stream, d. h. einen nach dem anderen mit unterschiedlichen Cursorpositionen. Er scannt die gesamte Redis, gibt jedoch 10 Ergebnisse gleichzeitig zurück, wodurch die Redis nicht blockiert werden, wie es die KEYS-Funktion getan hätte. Wir werden alle Schlüssel in ein Schlüsselarray verschieben, wonach Sie alle Schlüssel durchlaufen und den GET-Befehl verwenden können, um den Wert jedes Schlüssels zu erhalten.

const redis = require('ioredis');
    let stream = redis.scanStream({
        match: "LOGIN::*",
        count: 10
    });
     stream.on("data", async (keys = []) => {
                        let key;
                        for (key of keys) {
                            if (!keysArray.includes(key)) {
                                await keysArray.push(key);
                            }
                        }
                    });
                    stream.on("end", () => {
                        res(keysArray);
                    });