| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #!/usr/bin/env node
- // This software is licensed GNU GPL v2
- // Author: Alexey Dubkov <alexey.dubkov@gmail.com>
- var host = process.argv[2] || 'localhost',
- port = 6379,
- metric = process.argv[3],
- db = process.argv[4] || 'none';
- var client = require('redis').createClient(port, host);
- var llenall = i = rlen = 0;
- client.on('llenall', function(v) {
- llenall += v;
- if (i == rlen) {
- console.log(llenall);
- client.emit('quit');
- }
- });
- client.on('ready', function(err) {
- if (metric) {
- if (db && client.server_info.hasOwnProperty(db)) {
- var t = client.server_info[db]
- .match('keys=(\\d+),expires=(\\d+),avg_ttl=(\\d+)');
- client.server_info.key_space_db_keys = t[1];
- client.server_info.key_space_db_expires = t[2];
- client.server_info.key_space_db_avg_ttl = t[3];
- }
- switch (metric) {
- case 'llen':
- client.llen(db, function(err, res) {
- console.log(res);
- client.emit('quit');
- });
- break;
- case 'llenall':
- client.keys('*', function(err, res) {
- rlen = res.length;
- res.map(function(v) {
- client.llen(v, function(err, res) {
- i++;
- client.emit('llenall', res);
- });
- });
- });
- break;
- case 'list_key_space_db':
- if (client.server_info.db0) {
- console.log('db0');
- } else
- console.log('database_detect');
- client.emit('quit');
- break;
- case 'dbsize':
- if (client.server_info.db0) {
- var res = {};
- client.server_info.db0.split(',').map(function(el){
- var _el = el.split('=');
- res[_el[0]] = _el[1];
- });
- console.log(res.keys);
- } else
- console.log('database_detect');
- client.emit('quit');
- break;
- default:
- if (client.server_info.hasOwnProperty(metric))
- console.log(client.server_info[metric]);
- client.emit('quit');
- break;
- }
- } else {
- console.log('Not selected metric');
- client.emit('quit');
- }
- });
- client.on('error', function(err) {
- console.log('Error: ' + err);
- });
- client.on('quit', function() {
- client.quit();
- });
|