我正在使用 node_redis客户端,我想监控 Redis 当前使用的内存量:
const redis = require('redis');
const redisClient = redis.createClient();
setInterval(() => {
// add much data to redis, then:
console.log(redisClient.server_info.used_memory);
}, 1000);
这会在每个时间间隔记录相同数量的内存。但是,如果我使用 redis-cli“info”命令,我可以看到内存在增加。
我想出的唯一解决方案是每次我想检查内存时创建一个新客户端:
const redis = require('redis');
setInterval(() => {
// add much data to redis, then create new client to watch memory:
const redisClient = redis.createClient();
console.log(redisClient.server_info.used_memory);
redisClient.quit();
}, 1000);
不过,这似乎不是正确的做法。有没有一种方法可以“更新” used_memory 信息而无需每次都创建新的客户端?
最佳答案
这样就可以了:
setInterval(() => {
redisClient.info((req, res) => {
res.split("\n").map((line) => {
if (line.match(/used_memory_human/)) {
console.log('Used memory: ' + line.split(":")[1]);
}
})
});
}, 1000);
它将按行拆分您的info
输出,并打印包含used_memory_human
的行的值
关于node.js - node_redis 更新已用内存信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53104472/