所以我正在编写一个从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) { });
Run Code Online (Sandbox Code Playgroud)
解决方案1
正如@carebdayrvis所提到的,您可以使用INFO命令获取数据库信息,并解析信息以获取数据库的数量.
这个解决方案有两个问题:
解决方案2
调用CONFIG GET DATABASES以获取数据库的总数.此结果包括空数据库和非空数据库.您可以使用SELECT db-index和DBSIZE命令确定哪些数据库不为空.
该解决方案的优势在于它更具可编程性.
其他的东西
顺便说一句,KEYS 不应该在生产环境中使用,它可能会长时间阻止Redis.您应该考虑使用SCAN命令.
| 归档时间: |
|
| 查看次数: |
1340 次 |
| 最近记录: |