Bug fix for monitor mode. (forddg) Auto update of new commands from redis.io (Dave Hoover)
Also some whitespace fix for JSHint.
Run this: node generate_commands.js To fetch redis.io/commands.json and save it to a file that node_redis will read at startup.
The 'somehow' in 'This list needs to be updated, and perhaps auto-updated somehow'
…ted, and perhaps auto-updated somehow'
I originally didn't think DISCARD would do anything here because of the clever MULTI interface, but somebody pointed out to me that DISCARD can be used to flush the WATCH set.
Authentication is now remembered by the client and will be automatically sent to the server on every connection, including any reconnections.
Thanks to Dean Mao and Austin Chau.
When a Redis server starts up, it might take a while to load the dataset into memory. During this time, the server will accept connections, but will return errors for all non-INFO commands. Now node_redis will send an INFO command whenever it connects to a server. If the info command indicates that the server is not ready, the client will keep trying until the server is ready. Once it is ready, the client will emit a "ready" event as well as the "connect" event. The client will queue up all commands sent before the server is ready, just like it did before. When the server is ready, all offline/non-ready commands will be replayed. This should be backward compatible with previous versions. To disable this ready check behavior, set `options.no_ready_check` when creating the client. As a side effect of this change, the key/val params from the info command are available as `client.server_options`. Further, the version string is decomposed into individual elements in `client.server_options.versions`.
Thanks to Gustaf Sjöberg.
…p error properly.
* An important bug fix in reconnection logic. Previously, reply callbacks would be invoked twice after a reconnect. * Changed error callback argument to be an actual Error object. New feature: * Add friendly syntax for HMSET using an object.
Otherwise an error thrown in a callback would be throw on the parser's stack.