NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2727 most downloaded on npm
A modern, high performance Redis client
Last release 4 days ago
30 Sep 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 55 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
16 years old
188 releases · first in 2010
## Enhancements * Upgrade @redis/client
@redis/client## Enhancements * Upgrade @redis/bloom * Upgrade @redis/client * Upgrade @redis/graph * Upgrade @redis/json * Upgrade @redis/search * Upgrade @redis/t
@redis/bloom@redis/client@redis/graph@redis/json@redis/search@redis/time-seriesOne column per quarter.
- Upgrade @node-redis/client - Upgrade @node-redis/search
@node-redis/client@node-redis/searchNothing published for this version
Upgrade @node-redis/time-series
@node-redis/client@node-redis/search@node-redis/time-seriesFirst release with @node-redis/graph
@node-redis/graph@node-redis/client@1.0.3Fix handler for "__redis__:invalidate" messages
EXISTS command reply (#1819)@node-redis/bloomBuffersASK and MOVED errors handlerFix NOAUTH error when using authentication & database
NOAUTH error when using authentication & database (#1681).quit() in PubSub mode (#1766)name on a client (#1758)client.hset) in legacyModeRedisSocketOptions type (#1741)numbers and Buffers in HSET (#1738 #1739)RedisClientType, RedisClusterType and some more types (#1673)@node-redis/time-seriesThis version is a major change and refactor, adding modern JavaScript capabilities and multiple breaking changes. See the migration guide for tips on…
This version is a major change and refactor, adding modern JavaScript capabilities and multiple breaking changes. See the migration guide for tips on how to upgrade.
createClient takes new and different argumentsprefix, rename_commands configuration options to createClient have been removed.auth() directlyThis version is a major change and refactor, adding modern JavaScript capabilities and multiple breaking changes. See the migration guide for tips on how to upgrade.
createClient takes new and different argumentsprefix, rename_commands configuration options to createClient have been removedenable_offline_queue configuration option is removed, executing commands on a closed client (without calling .connect() or after calling .disconnect()) will reject immediately.auth() directlyNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Exclude unnecessary files from tarball
Exclude unnecessary files from tarball (#1600)
Fix a potential exponential regex in monitor mode
Upgrade node and dependencies and redis-commands to support Redis 6
auth pass [user] (#1508)auth pass [user]Nothing published for this version
Nothing published for this version
…since 2017 and additionally removes a lot of old deprecated features and internals in preparation for an upcoming modernization refactor (v4).
This version is mainly a release to distribute all the unreleased changes on master since 2017 and additionally removes a lot of old deprecated features and internals in preparation for an upcoming modernization refactor (v4).
hiredis (no longer required)drain eventidle eventparser optionmax_delay optionmax_attempts optionsocket_no_delay optionredis-commands packageredis-parser package, v3.0.0, which brings performance improvementsdouble-ended-queue with denque, which brings performance improvementssocket_initial_delay option for socket.setKeepAlive (#1396)rediss protocol in url (#1282)Accept UPPER_CASE commands in send_command
Features
Redis.addCommand(name)Bugfixes
Fixed monitor mode not working in combination with IPv6 (2.6.0 regression)
Bugfixes
All returned errors are from now a subclass of RedisError.
Features
RedisError.Bugfixes
null as valueAbortErrors and AggregateErrors not showing the error message in the stack traceFixed parser not being reset in case the redis connection closed ASAP for overcoming of output buffer limits
Bugfixes
Fixed monitor mode not working in combination with IPv6, sockets or lua scripts (2.6.0 regression)
Bugfixes
Do not change the tls setting to camel_case
Bugfixes
Fixed individual callbacks of a transaction not being called (2.6.0 regression)
Bugfixes
Fixed invalid function name being exported
Bugfixes
The parser option is deprecated and should be removed. The built-in Javascript parser is a lot faster than the hiredis parser and has more features
We proudly present:
Fixed pub sub, better error handling, camelCase and big number support, improved performance, fire and forget commands, bug fixes and more.
This is the combined changelog of all pre-releases of the 2.6 release plus the additional changes. If you want to see the individual changelogs, please have a look.
Features
args to command errors to improve identification of the errormessage_buffer / pmessage_buffer events. That event is always going to emit a buffermessage event at the same time is always going to return the same message as stringstring_numbers option to get back strings instead of numbersBugfixes
tls options instead of the general optionsstring_numbers option emitting the number of channels not as numberThe quit command did not end connections earlier if the connection was down at that time and this could have lead to strange situations, therefor this was fixed to end the connection right away in those cases.
Deprecations
parser option is deprecated and should be removed. The built-in Javascript parser is a lot faster than the hiredis parser and has more featuresIn addition to the pre-releases the following changes exist in v.2.6.0:
Features
Bugfixes
__proto__ (v.2.6.0-2) to prevent and breaking changeDeprecations
parser option is deprecated and should be removed. The built-in Javascript parser is a lot faster than the hiredis parser and has more featuresNothing published for this version
Nothing published for this version
Nothing published for this version
Revert throwing on invalid data types and print a warning instead
Bugfixes
Fixed breaking changes against Redis 2.4 introduced in 2.5.0 / 2.5.1
Bugfixes
Fixed info command not working anymore with optional section argument in 2.5.0
Bugfixes
Please check the changelog of the pre-release.
Please check the changelog of the pre-release.
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 befor…
<b>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.</b>
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
retry_unfulfilled_commands optiondb option to select the database while connecting (this is not recommended)password option as alias for auth_passwarning emitter that receives node_redis warnings like auth not required and deprecation messagesretry_strategy option that replaces all reconnect optionsBugfixes
Deprecations
socket_nodelay option is deprecated and will be removed in v.3.0.0max_attempts option is deprecated and will be removed in v.3.0.0. Please use the retry_strategy insteadretry_max_delay option is deprecated and will be removed in v.3.0.0. Please use the retry_strategy insteadFixed not emitting ready after reconnect with disable_resubscribing (@maxgalbu)
Bugfixes
Fixed a js parser regression introduced in 2.4.0 (@BridgeAR)
Bugfixes
Added tls option to iniate a connection to a redis server behind a TLS proxy. Thanks (@paddybyers)
Features
tls option to iniate a connection to a redis server behind a TLS proxy. Thanks (@paddybyers)prefix option to auto key prefix any command with the provided prefix (@luin & @BridgeAR)url option to pass the connection url with the options object (@BridgeAR)client.duplicate([options]) to duplicate the current client and return a new one with the same options (@BridgeAR)Bugfixes
Fixed saving buffers with charsets other than utf-8 while using multi (@BridgeAR)
Improve speed further for: (@BridgeAR)
Features
drain event is from now on only emitted if the stream really had to bufferBugfixes
Fixed undefined options passed to a new instance not accepted (possible with individual .createClient functions like in fakeredis) (@BridgeAR)
Bugfixes
Fixed unspecific error message for unresolvable commands (@BridgeAR)
Bugfixes
Fix multi not being executed on Node 0.10.x if node_redis not yet ready (@BridgeAR)
Bugfixes
Bugfixes
Fix regular commands not being executed after a .multi until .exec was called (@BridgeAR)
Bugfixes
Bugfixes
No code change
No code change
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!
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
Bugfixes
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.<br> 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
Addded optional flush parameter to .end. If set to true, commands fired after using .end are going to be rejected instead of being ignored. (@crispy19
.end. If set to true, commands fired after using .end are going to be rejected instead of being ignored. (@crispy1989)#866 Fix argument mutation while using the array notation in combination with keys / callbacks (@BridgeAR)
#866 Fix argument mutation while using the array notation in combination with keys / callbacks (@BridgeAR)
Bugfixes:
Added new commands and drop support for deprecated _substr_ (@BridgeAR)
This is the biggest release that node_redis had since it was released in 2010. A long list of outstanding bugs has been fixed, so we are very happy to present you redis 2.0 and we highly recommend updating as soon as possible.
err.code property (@BridgeAR)err.code property. (@skeggse & @BridgeAR)err.command property for the command used (@BridgeAR)send_command directly may no also be called without the args as stated in the README.md (@BridgeAR).send_command directly instead of the convenient methods like redis.command..errors property instead of an array with errors.err, undefined instead of null, undefined).multi.exec does not have a callback and an EXECABORT error occurrs, it'll emit that error instead.redis.server_info (db0...) is from now on an object instead of an string.NodeRedis also thanks @qdb, @tobek, @cvibhagool, @frewsxcv, @davidbanham, @serv, @vitaliylag, @chrishamant, @GamingCoder and all other contributors that I may have missed for their contributions!
From now on we'll push new releases more frequently out and fix further long outstanding things and implement new features.
Huge issue and pull-request cleanup. Thanks Blain! (@blainsmith)
Your coding agent can read these notes before it upgrades. Set up the MCP server →