node.js - node_redis 更新已用内存信息

标签 node.js redis node-redis

我正在使用 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/

相关文章:

node.js - jsreportonline - 如何保存为 pdf 文件

node.js - 尝试在 Node.js 中连接到 Elasticache Redis 时出现 "Invalid protocol"

javascript - 需要 Node.js 模块中的 "everything"

node.js - Firebase 存储文件下载在一段时间后停止工作

node.js - 如何使用 Firebase 函数在 Firebase 实时数据库的数据数组中添加新字段?

mysql - 循环中Mysql表消费者进程的行轮换

redis - 如何为 redis-cli 命令设置超时?

django - 导入 asgi_redis : ImportError: No module named _compat

redis - IP范围可以成为Redis中的键吗

node.js - 如何为发布订阅实例化多个Redis连接(node.js + node_redis)