Skip to content

Releases: redis/node-redis

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)

v.2.2.2

13 Oct 23:14
Compare
Choose a tag to compare

Bugfixes

  • Fix regular commands not being executed after a .multi until .exec was called (@BridgeAR)

The peregrino falcon

12 Oct 15:54
Compare
Choose a tag to compare

The peregrino falcon is the fasted bird on earth and this is what this release is all about: Increased performance for heavy usage by up to 400% [sic!] and increased overall performance for any command as well. Please check the benchmarks in the README.md for further details.

Features

  • Added rename_commands options to handle renamed commands from the redis config (@digmxl & @BridgeAR)
  • Added disable_resubscribing option to prevent a client from resubscribing after reconnecting (@BridgeAR)
  • Increased performance (@BridgeAR)
  • exchanging built in queue with @petkaantonov's double-ended queue
  • prevent polymorphism
  • optimize statements
  • Added .batch command, similar to .multi but without transaction (@BridgeAR)
  • Improved pipelining to minimize the RTT further (@BridgeAR)

Bugfixes

  • Fix a javascript parser regression introduced in 2.0 that could result in timeouts on high load. (@BridgeAR)
  • I was not able to write a regression test for this, since the error seems to only occur under heavy load with special conditions. So please have a look for timeouts with the js parser, if you use it and report all issues and switch to the hiredis parser in the meanwhile. If you're able to come up with a reproducable test case, this would be even better :)
  • Fixed should_buffer boolean for .exec, .select and .auth commands not being returned and fix a couple special conditions (@BridgeAR)

If you do not rely on transactions but want to reduce the RTT you can use .batch from now on. It'll behave just the same as .multi but it does not have any transaction and therefor won't roll back any failed commands.

Both .multi and .batch are from now on going to cache the commands and release them while calling .exec.

Please consider using .batch instead of looping through a lot of commands one by one. This will significantly improve your performance.

Here are some stats compared to ioredis 1.9.1 (Lenovo T450s i7-5600U):

                  simple set
      82,496 op/s » ioredis
     112,617 op/s » node_redis

                  simple get
      82,015 op/s » ioredis
     105,701 op/s » node_redis

                  simple get with pipeline
      10,233 op/s » ioredis
      26,541 op/s » node_redis (using .batch)

                  lrange 100
       7,321 op/s » ioredis
      26,155 op/s » node_redis

                  publish
      90,524 op/s » ioredis
     112,823 op/s » node_redis

                  subscribe
      43,783 op/s » ioredis
      61,889 op/s » node_redis

To conclude: we can proudly say that node_redis is very likely outperforming any other node redis client.

Known issues

  • The pub sub system has some flaws and those will be addressed in the next minor release

v.2.1.0

02 Oct 19:15
Compare
Choose a tag to compare

Features:

  • Addded optional flush parameter to .end. If set to true, commands fired after using .end are going to be rejected instead of being ignored. (@crispy1989)
  • Addded: host and port can now be provided in a single options object. E.g. redis.createClient({ host: 'localhost', port: 1337, max_attempts: 5 }); (@BridgeAR)
  • Speedup common cases (@BridgeAR)

Bugfixes:

  • Fix argument mutation while using the array notation with the multi constructor (@BridgeAR)
  • Fix multi.hmset key not being type converted if used with an object and key not being a string (@BridgeAR)
  • Fix parser errors not being catched properly (@BridgeAR)
  • Fix a crash that could occur if a redis server does return the info command as usual #541 (@BridgeAR)
  • Explicitly passing undefined as a callback statement will work again. E.g. client.publish('channel', 'message', undefined); (@BridgeAR)