vì vậy đây là mã ví dụ sẽ cung cấp cho bạn một ý tưởng rộng lớn. Vì vậy, bạn có thể sử dụng hai thứ mà redis cung cấp. Đầu tiên là hàm KEYS không nên sử dụng do độ phức tạp O (N) của nó. Ví dụ này sử dụng lệnh quét trong một luồng, tức là từng cái một với các vị trí con trỏ khác nhau. Nó sẽ quét toàn bộ redis nhưng sẽ trả về 10 kết quả cùng một lúc mà sẽ không làm dừng redis như hàm KEYS. Chúng tôi sẽ đẩy tất cả các khóa vào một mảng khóa, sau đó bạn có thể lặp lại tất cả các khóa và sử dụng lệnh GET để nhận giá trị của từng khóa.
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);
});