如何在Redis(NodeJS)中查找数据库数量

因此,我正在编写一个从redis读取的节点应用程序,我想执行某种查询,该查询返回有人知道怎么做的数据库数量。

因此,现在基本上我所拥有的是一种获取数据库中所有密钥的方法,但是我希望级别更高,我想遍历所有数据库然后获取所有密钥。这是用于获取当前数据库的所有密钥的代码。

const client = redis.createClient({host: "127.0.0.1", port: 6379});

client.multi()

.keys('*', function (err, replies) {

console.log("MULTI got " + replies.length + " replies");

let dbs = [replies];

let dbData = {};

replies.forEach(function (reply, index) {

client.get(reply, function (err, data) {

console.log(reply + " " +data);

});

});

})

.exec(function (err, replies) { });

回答:

解决方案1

正如@carebdayrvis所提到的,您可以使用INFOcommand获取数据库信息,并解析该信息以获取数据库的数量。

此解决方案有两个问题:

  1. 它仅返回不为空的数据库的信息。它不会显示数据库的总数。
  2. 如果信息文本的格式更改,则必须重写分析代码。

解决方案2

调用CONFIG GET DATABASES以获取数据库总数。此结果包括空数据库和非空数据库。您可以使用SELECT db-

indexDBSIZE命令找出哪些数据库不为空。

该解决方案的优势在于它更具可编程性。

其他的东西

顺便说一句,KEYS 在生产环境中使用它,它可能会长时间阻止Redis。您应该考虑SCAN改为使用命令。

以上是 如何在Redis(NodeJS)中查找数据库数量 的全部内容, 来源链接: utcz.com/qa/430239.html

回到顶部