diff --git a/examples/scan.js b/examples/scan.js new file mode 100644 index 0000000..0302843 --- /dev/null +++ b/examples/scan.js @@ -0,0 +1,36 @@ +var redis = require("redis"), + client = redis.createClient(); + +var cursor = '0'; + +function scan() { + client.scan( + cursor, + "MATCH", "q:job:*", + "COUNT", "10", + function(err, res) { + if (err) throw err; + + // Update the cursor position for the next scan + cursor = res[0]; + + // From : + // "An iteration starts when the cursor is set to 0, + // and terminates when the cursor returned by the server is 0." + if (cursor === '0') { + return console.log('Iteration complete'); + } else { + // Remember: more or less than COUNT or no keys may be returned + // See http://redis.io/commands/scan#the-count-option + // Also, SCAN may return the same key multiple times + // See http://redis.io/commands/scan#scan-guarantees + + if (res[1].length > 0) { + console.log('Array of matching keys', res[1]); + } + + return scan(); + } + } + ); +}