node_redis обновляет информацию об используемой памяти - PullRequest
0 голосов
/ 01 ноября 2018

Я использую клиент 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);

Это регистрирует одинаковое количество памяти за каждый интервал. Однако, если я использую команду «info» redis-cli, я вижу увеличение памяти.

Единственное решение, которое я придумал, - это создание нового клиента каждый раз, когда я хочу проверить память:

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 без создания нового клиента каждый раз?

1 Ответ

0 голосов
/ 05 ноября 2018

Это поможет:

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

...