så det här är exempelkoden som ger dig en bred idé. Så du kan använda två saker som redis erbjuder. Först är KEYS-funktionen som inte bör användas på grund av dess O(N)-komplexitet. Det här exemplet använder scan-kommandot i en ström, dvs en efter en med olika markörpositioner. Det kommer att skanna hela redis men kommer att returnera 10 resultat åt gången som inte stoppar redis som KEYS-funktionen skulle ha. Vi kommer att trycka alla nycklar till en nycklar, varefter du kan gå igenom alla nycklar och använda GET-kommandot för att få värdet på varje nyckel.
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);
});