Skip to content

Releases: redis/node-redis

v.2.5.0

15 Mar 04:44
Compare
Choose a tag to compare

Please check the changelog of the pre-release.

2.5.0 Pre-release

07 Mar 02:36
Compare
Choose a tag to compare
2.5.0 Pre-release Pre-release
Pre-release

This is a big release with some substaintual underlining changes. Therefor this is released as a pre-release and I encourage anyone who's able to, to test this out. Likely nothing will change until 2.5.0.

It took way to long to release this one and the next release cycles will be shorter again.

This release is also going to deprecate a couple things to prepare for a future v.3 (it'll still take a while to v.3).

Features

  • The parsers moved into the redis-parser module and will be maintained in there from now on
  • Improve js parser speed significantly for big SUNION/SINTER/LRANGE/ZRANGE
  • Improve redis-url parsing to also accept the database-number and options as query parameters as suggested in IANA
  • Added a retry_unfulfilled_commands option
  • Setting this to 'true' results in retrying all commands that were not fulfilled on a connection loss after the reconnect. Use with caution
  • Added a db option to select the database while connecting (this is not recommended)
  • Added a password option as alias for auth_pass
  • The client.server_info is from now on updated while using the info command
  • Gracefuly handle redis protocol errors from now on
  • Added a warning emitter that receives node_redis warnings like auth not required and deprecation messages
  • Added a retry_strategy option that replaces all reconnect options
  • The reconnecting event from now on also receives:
  • The error message why the reconnect happend (params.error)
  • The amount of times the client was connected (params.times_connected)
  • The total reconnecting time since the last time connected (params.total_retry_time)
  • Always respect the command execution order no matter if the reply could be returned sync or not (former exceptions: #937)
  • redis.createClient is now checking input values stricter and detects more faulty input
  • Started refactoring internals into individual modules
  • Pipelining speed improvements

Bugfixes

  • Fixed explicit undefined as a command callback in a multi context
  • Fixed hmset failing to detect the first key as buffer or date if the key is of that type
  • Fixed do not run toString on an array argument and throw a "invalid data" error instead
  • This is not considered as breaking change, as this is likely a error in your code and if you want to have such a behavior you should handle this beforehand
  • The same applies to Map / Set and individual Object types
  • Fixed redis url not accepting the protocol being omitted or protocols other than the redis protocol for convienence
  • Fixed parsing the db keyspace even if the first database does not begin with a zero
  • Fixed handling of errors occuring while receiving pub sub messages
  • Fixed huge string pipelines crashing NodeJS (Pipeline size above 256mb)
  • Fixed rename_commands and prefix option not working together
  • Fixed ready being emitted to early in case a slave is still syncing / master down

Deprecations

  • Using any command with a argument being set to null or undefined is deprecated
  • From v.3.0.0 on using a command with such an argument will return an error instead
  • If you want to keep the old behavior please use a precheck in your code that converts the arguments to a string.
  • Using SET or SETEX with a undefined or null value will from now on also result in converting the value to "null" / "undefined" to have a consistent behavior. This is not considered as breaking change, as it returned an error earlier.
  • Using .end(flush) without the flush parameter is deprecated and the flush parameter should explicitly be used
  • From v.3.0.0 on using .end without flush will result in an error
  • Using .end without flush means that any command that did not yet return is going to silently fail. Therefor this is considered harmfull and you should explicitly silence such errors if you are sure you want this
  • Depending on the return value of a command to detect the backpressure is deprecated
  • From version 3.0.0 on node_redis might not return true / false as a return value anymore. Please rely on client.should_buffer instead
  • The socket_nodelay option is deprecated and will be removed in v.3.0.0
  • If you want to buffer commands you should use .batch or .multi instead. This is necessary to reduce the amount of different options and this is very likely reducing your throughput if set to false.
  • If you are sure you want to activate the NAGLE algorithm you can still activate it by using client.stream.setNoDelay(false)
  • The max_attempts option is deprecated and will be removed in v.3.0.0. Please use the retry_strategy instead
  • The retry_max_delay option is deprecated and will be removed in v.3.0.0. Please use the retry_strategy instead
  • The drain event is deprecated and will be removed in v.3.0.0. Please listen to the stream drain event instead
  • The idle event is deprecated and will likely be removed in v.3.0.0. If you rely on this feature please open a new ticket in node_redis with your use case
  • Redis < v. 2.6.11 is not supported anymore and will not work in all cases. Please update to a newer redis version
  • Removed non documented command syntax (adding the callback to an arguments array instead of passing it as individual argument)

v.2.4.2

27 Nov 21:54
Compare
Choose a tag to compare

Bugfixes

  • Fixed not emitting ready after reconnect with disable_resubscribing (@maxgalbu)

v.2.4.1

25 Nov 22:44
Compare
Choose a tag to compare

Bugfixes

  • Fixed a js parser regression introduced in 2.4.0 (@BridgeAR)

TLS & key prefixing

25 Nov 15:25
Compare
Choose a tag to compare

Features

  • Added tls option to iniate a connection to a redis server behind a TLS proxy. Thanks (@paddybyers)
  • Added prefix option to auto key prefix any command with the provided prefix (@luin & @BridgeAR)
  • Added url option to pass the connection url with the options object (@BridgeAR)
  • Added client.duplicate([options]) to duplicate the current client and return a new one with the same options (@BridgeAR)
  • Improve performance by up to 20% on almost all use cases (@BridgeAR)

Bugfixes

  • Fixed js parser handling big values slow (@BridgeAR)
  • The speed is now on par with the hiredis parser.

Big data with the JS parser

18 Nov 13:01
Compare
Choose a tag to compare

Bugfixes

  • Fixed saving buffers with charsets other than utf-8 while using multi (@BridgeAR)
  • Fixed js parser handling big values very slow (@BridgeAR)
  • The speed is up to ~500% faster than before but still up to ~50% slower than the hiredis parser.

v.2.3.0

30 Oct 14:13
Compare
Choose a tag to compare

v.2.3.0 - 30 Oct, 2015

Features

  • Improve speed further for: (@BridgeAR)
  • saving big strings (up to +300%)
  • using .multi / .batch (up to +50% / on Node.js 0.10.x +300%)
  • saving small buffers
  • Increased coverage to 99% (@BridgeAR)
  • Refactored manual backpressure control (@BridgeAR)
  • Removed the high water mark and low water mark. Such a mechanism should be implemented by a user instead
  • The drain event is from now on only emitted if the stream really had to buffer
  • Reduced the default connect_timeout to be one hour instead of 24h (@BridgeAR)
  • Added .path to redis.createClient(options); (@BridgeAR)
  • Ignore info command, if not available on server (@ivanB1975)

Bugfixes

  • Fixed a js parser error that could result in a timeout (@BridgeAR)
  • Fixed .multi / .batch used with Node.js 0.10.x not working properly after a reconnect (@BridgeAR)
  • Fixed fired but not yet returned commands not being rejected after a connection loss (@BridgeAR)
  • Fixed connect_timeout not respected if no connection has ever been established (@gagle & @benjie)
  • Fixed return_buffers in pub sub mode (@komachi)

v.2.2.5

18 Oct 15:00
Compare
Choose a tag to compare

Bugfixes

  • Fixed undefined options passed to a new instance not accepted (possible with individual .createClient functions like in fakeredis) (@BridgeAR)

v.2.2.4

17 Oct 20:11
Compare
Choose a tag to compare

Bugfixes

  • Fixed unspecific error message for unresolvable commands (@BridgeAR)
  • Fixed not allowed command error in pubsub mode not being returned in a provided callback (@BridgeAR)
  • Fixed to many commands forbidden in pub sub mode (@BridgeAR)
  • Fixed mutation of the arguments array passed to .multi / .batch constructor (@BridgeAR)
  • Fixed mutation of the options object passed to createClient (@BridgeAR)
  • Fixed error callback in .multi not called if connection in broken mode (@BridgeAR)

v.2.2.3

14 Oct 01:01
Compare
Choose a tag to compare

Bugfixes

  • Fix multi not being executed on Node 0.10.x if node_redis not yet ready (@BridgeAR)