'use strict'; var redis = require('../index'), client = redis.createClient(null, null, { command_queue_high_water: 5, command_queue_low_water: 1 }), remaining_ops = 100000, paused = false; function op() { if (remaining_ops <= 0) { console.error('Finished.'); process.exit(0); } remaining_ops--; if (client.hset('test hash', 'val ' + remaining_ops, remaining_ops) === false) { console.log('Pausing at ' + remaining_ops); paused = true; } else { process.nextTick(op); } } client.on('drain', function () { if (paused) { console.log('Resuming at ' + remaining_ops); paused = false; process.nextTick(op); } else { console.log('Got drain while not paused at ' + remaining_ops); } }); op();