então este é o código de exemplo que lhe dará uma ideia ampla. Então você pode usar duas coisas que o redis oferece. A primeira é a função KEYS que não deve ser usada devido à sua complexidade O(N). Este exemplo está usando o comando scan em um fluxo, ou seja, um por um com diferentes posições do cursor. Vamos enviar todas as chaves para um array de chaves, após o qual você pode percorrer todas as chaves e usar o comando GET para obter o valor de cada chave.
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);
});