如何格式化node_redis信息函数输出



我想用node检查我的电脑上的Redis信息,所以我使用node_redis并运行info函数:

var redis = require("redis"),
    client = redis.createClient();
client.on("connect", function () {
    client.info(function (err, replay) {
        console.log(replay);
    })
})

但响应是非格式的:

`#Serverrnredis_version:2.6.16rnredis_git_sha1:00000000rnredis_git_dirty:0rnredis_mode:standalonernos:Linux 3.8.0-29-generic x86_64rnarch_bits:64rnmultiplexing_api:epollrngcc_version:4.6.3rnprocess_id:2941rnrun_id:e60f261a6f4f6f081563a47961315eff6b1c005drntcp_port:6379rnuptime_in_seconds:1777rnuptime_in_days:0rnhz:10rnlru_clock:2040689rnrn# Clientsrnconnected_clients:2rnclient_longest_output_list:0rnclient_biggest_input_buf:0rnblocked_clients:0rnrn# Memoryrnused_memory:562584rnused_memory_human:549.40Krnused_memory_rss:2031616rnused_memory_peak:561784rnused_memory_peak_human:548.62Krnused_memory_lua:31744rnmem_fragmentation_ratio:3.61rnmem_allocator:jemalloc-3.2.0rnrn# Persistencernloading:0rnrdb_changes_since_last_save:0rnrdb_bgsave_in_progress:0rnrdb_last_save_time:1383553917rnrdb_last_bgsave_status:okrnrdb_last_bgsave_time_sec:-1rnrdb_current_bgsave_time_sec:-1rnaof_enabled:0rnaof_rewrite_in_progress:0rnaof_rewrite_scheduled:0rnaof_last_rewrite_time_sec:-1rnaof_current_rewrite_time_sec:-1rnaof_last_bgrewrite_status:okrnrn# Statsrntotal_connections_received:3rntotal_commands_processed:5rninstantaneous_ops_per_sec:0rnrejected_connections:0rnexpired_keys:0rnevicted_keys:0rnkeyspace_hits:0rnkeyspace_misses:0rnpubsub_channels:0rnpubsub_patterns:0rnlatest_fork_usec:0rnrn# Replicationrnrole:masterrnconnected_slaves:0rnrn# CPUrnused_cpu_sys:0.13rnused_cpu_user:0.19rnused_cpu_sys_children:0.00rnused_cpu_user_children:0.00rnrn# Keyspacern'

如何将其转换为对象? 比如:

{
    redis_version:2.6.16,
    redis_git_sha1:00000000,
    redis_git_dirty:0,
    ......
}

以便我可以读取每个属性的值,获取我需要的信息

检查这个问题。基本上,您需要编写一个简单的解析器,例如第一个答案中提供的解析器。

您可以使用 node-redis-info:

npm install redis-info

用法:

> var parser = require('redis-info');
undefined
> var info = parser.parse(redis_info_str);
undefined
> info.fields.redis_version
2.6.1
> info.startWith('pubsub')
[ [ 'pubsub_channels', '2' ],
  [ 'pubsub_patterns', '0' ] ]
> info.contains('memory')
[ [ 'used_memory', '15080416' ],
  [ 'used_memory_human', '14.38M' ],
  [ 'used_memory_rss', '21258240' ],
  [ 'used_memory_peak', '18985904' ],
  [ 'used_memory_peak_human', '18.11M' ] ]

最新更新