Node.js 具有匹配模式的ioredis密钥
我想用密钥匹配模式“LOGIN::”搜索redis数据库。我正在应用程序中使用ioredis。昨天,我搜索了整个网站,我得到了如下几个选项: 钥匙 扫描流 问题:Node.js 具有匹配模式的ioredis密钥,node.js,express,redis,ioredis,Node.js,Express,Redis,Ioredis,我想用密钥匹配模式“LOGIN::”搜索redis数据库。我正在应用程序中使用ioredis。昨天,我搜索了整个网站,我得到了如下几个选项: 钥匙 扫描流 问题: import Redis from 'ioredis' var Client = new Redis() Client.scanStream <---- Missing 从“ioredis”导入Redis var Client=new Redis() Client.scanStream为您提供了一个示例 const str
import Redis from 'ioredis'
var Client = new Redis()
Client.scanStream <---- Missing
从“ioredis”导入Redis
var Client=new Redis()
Client.scanStream为您提供了一个示例
const stream=redis.scanStream()
stream.on(“数据”,异步(键)=>{
//做你需要的
})
因此,这是一个示例代码,它将为您提供一个大致的概念。因此,您可以使用redis提供的两种功能。首先是KEYS函数,由于其O(N)复杂性,不应使用它。此示例在流中使用scan命令,即使用不同光标位置逐个执行。
它将扫描整个redis,但一次将返回10个结果,这不会像KEYS功能那样暂停redis。我们将把所有键推送到一个键数组中,然后您可以循环遍历所有键,并使用GET命令获取每个键的值
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);
});
不要只是添加代码。加上一些解释。正式注明@VishistVarugeese