将redis INFO命令响应string转换为nodejs中的JSON对象

redis INFO commad返回类似redis_version:2.2.14\r\nredis_git_sha1:00000000\r\nredis_git_dirty:0\r\narch_bits:32的stringredis_version:2.2.14\r\nredis_git_sha1:00000000\r\nredis_git_dirty:0\r\narch_bits:32

我怎样才能转换string来获取类似的JSON对象

  { "redis_version":"x", "key2":"value" } 

我不知道你为什么要这样做,但这是一个简单的例子:

 function parseInfo( info ) { var lines = info.split( "\r\n" ); var obj = { }; for ( var i = 0, l = info.length; i < l; i++ ) { var line = lines[ i ]; if ( line && line.split ) { line = line.split( ":" ); if ( line.length > 1 ) { var key = line.shift( ); obj[ key ] = line.join( ":" ); } } } return obj; } 

你可以使用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' ] ]