Recursively scans the keyspace of a Redis 2.8+ instance using SCAN, HSCAN, ZSCAN, & SSCAN as well as Lists.
Fairly safe in a production environment as it does NOT use KEYS * to iterate.
Optionally pass a redis pattern to filter from.
npm install redisscan
var redisScan = ;var redis = ;;
pattern: optional wildcard key pattern to match, e.g:
keys_only: optional boolean -- returns nothing but keys, no types,lengths,values etc. (defaults to
count_amt: optional positive/non-zero integer -- redis hint for work done per SCAN operation (defaults to 10) docs
function (type, key, subkey, length, value, next)This is called for every string, and every subkey/value in a container when not using
keys_only, so outer keys may show up multiple times.
keyis the redis key
nullor populated with a hash key
lengthis the length of a set or list
valueis the value of the key or subkey when appropriate
next()should be called as a function with no arguments if successful or an
Errorobject if not.
done_callback: optional function called when scanning completes with one argument, and
Errorobject if an error ws raised
If values are changing, there is no guarantee on value integrity. This is not atomic. I recommend using a lock pattern with this function.
License MIT (c) 2014 Nathanael C. Fritz