Releases: redis/ioredis
Releases · redis/ioredis
v4.2.0
4.2.0 (2018-10-17)
Features
- support customize dns lookup function (#723) (b9c4793), closes antirez/redis#2410
v4.1.0
Bug Fixes
- cluster: quit() ignores errors caused by disconnected connection (#720) (fb3eb76)
- cluster: robust solution for pub/sub in cluster (#697) (13a5bc4), closes #696
- cluster: stop subscriber when disconnecting (fb27b66)
Features
- cluster: re-select subscriber when the currenct one is failed (c091f2e)
Performance Improvements
v4.0.2
v4.0.1
v4.0.0 Native Promise
This is a major release and contain breaking changes. Please read this changelog before upgrading.
Changes since 4.0.0-3:
Bug Fixes
Features
- export Pipeline for inheritances enabling (#675) (ca58249)
- export ScanStream at package level (#667) (5eb4198)
Changes since 3.x
Bug Fixes
- Sentinel: unreachable errors when sentinals are healthy (7bf6fea)
- resolve warning for Buffer() in Node.js 10 (6144c56)
- don't add cluster.info to the failover queue before ready (491546d)
- solves vulnerabilities dependencies (2950b79)
- Cluster: issues when setting enableOfflineQueue to false (#649) (cfe4258)
Performance Improvements
- upgrade redis-parser for better performance.
Features
- use native Promise instead of Bluebird, and allow users to switch back. (da60b8b)
- add maxRetriesPerRequest option to limit the retries attempts per command (1babc13)
Redis#connect()
will be resolved when status is ready (#648) (f0c600b)- add debug details for connection pool (9ec16b6)
- wait for ready state before resolving cluster.connect() (7517a73)
BREAKING CHANGES
- Drop support for < node v6
- Use native Promise instead of Bluebird. This change makes all the code that rely on the features provided by Bluebird not working
anymore. For example,redis.get('foo').timeout(500)
now should be failed since the native
Promise doesn't support thetimeout
method. You can switch back to the Bluebird
implementation by settingRedis.Promise
:
const Redis = require('ioredis')
Redis.Promise = require('bluebird')
const redis = new Redis()
// Use bluebird
assert.equal(redis.get().constructor, require('bluebird'))
// You can change the Promise implementation at any time:
Redis.Promise = global.Promise
assert.equal(redis.get().constructor, global.Promise)
Redis#connect()
will be resolved when status is ready
instead ofconnect
:
const redis = new Redis({ lazyConnect: true })
redis.connect().then(() => {
assert(redis.status === 'ready')
})
Cluster#connect()
will be resolved when the connection
status becomeready
instead ofconnect
.- The maxRetriesPerRequest is set to 20 instead of null (same behavior as ioredis v3)
by default. So when a redis server is down, pending commands won't wait forever
until the connection become alive, instead, they only wait about 10s (depends on the
retryStrategy option) - The
new
keyword is required explicitly. CallingRedis
as a function like
Redis(/* options /)is deprecated and will not be supported in the next major version, use
new Redis(/ options */)` instead.
v4.0.0-3
v4.0.0-2
Upgrade redis-parser to v3. See release notes on redis-parser repo for details.
v4.0.0-1
v4.0.0-0
Bug Fixes
- Deprecated
Redis()
in favor ofnew Redis()
(8e7c6f1) - don't add cluster.info to the failover queue before ready (491546d)
- solves vulnerabilities dependencies (2950b79)
- Cluster: issues when setting enableOfflineQueue to false (#649) (cfe4258)
Features
- use native Promise instead of Bluebird, and allow users to switch back. (da60b8b)
- add maxRetriesPerRequest option to limit the retries attempts per command (1babc13)
Redis#connect()
will be resolved when status is ready (#648) (f0c600b)- add debug details for connection pool (9ec16b6)
- wait for ready state before resolving cluster.connect() (7517a73)
BREAKING CHANGES
- Drop support for < node v6
Redis#connect()
will be resolved when status is ready
instead ofconnect
:
const redis = new Redis({ lazyConnect: true })
redis.connect().then(() => {
assert(redis.status === 'ready')
})
Cluster#connect()
will be resolved when the connection
status becomeready
instead ofconnect
.- The maxRetriesPerRequest is set to 20 instead of null (same behavior as ioredis v3)
by default. So when a redis server is down, pending commands won't wait forever
until the connection become alive, instead, they only wait about 10s (depends on the
retryStrategy option) - The
new
keyword is required explicitly. CallingRedis
as a function like
Redis(/* options /)is deprecated and will not be supported in the next major version, use
new Redis(/ options */)` instead. - This change makes all the code that rely on the features provided by Bluebird not working
anymore. For example,redis.get('foo').timeout(500)
now should be failed since the native
Promise doesn't support thetimeout
method. You can switch back to the Bluebird
implementation by settingRedis.Promise
:
const Redis = require('ioredis')
Redis.Promise = require('bluebird')
const redis = new Redis()
// Use bluebird
assert.equal(redis.get().constructor, require('bluebird'))
// You can change the Promise implementation at any time:
Redis.Promise = global.Promise
assert.equal(redis.get().constructor, global.Promise)