5.0.0 (2022-03-26)
In the update of v5, we've made ioredis even more stable and developer-friendly while minimizing the number of breaking changes, so you can spend more time enjoying your life 😄.
Please refer to the guideline to upgrade your projects: 🚀 Upgrading from v4 to v5.
Bug Fixes
- add @ioredis/interface-generator to dev deps (aa3b3e9)
- add missing declaration for callBuffer (08c9072)
- add the missing typing for Redis#call() (747dd30)
- better support for CJS importing (687d3eb)
- disable slotsRefreshInterval by default (370fa62)
- Fix the NOSCRIPT behavior when using pipelines (bc1b168)
- improve typing for auto pipelining (4e8c567)
- improve typing for pipeline (d18f3fe)
- keyPrefix should work with Buffer (6942cec), closes #1486
- make fields private when possible (d5c2f20)
- parameter declaration of Redis#duplicate (a29d9c4)
- pipeline fails when cluster is not ready (af60bb0), closes #1460
- remove dropBufferSupport option (04e68ac)
- remove unused Command#isCustomCommand (46ade6b)
- rename interfaces by dropping prefix I (d1d9dba)
- Reset loaded script hashes to force a reload of scripts after reconnect of redis (60c2af9)
- support passing keyPrefix via redisOptions (6b0dc1e)
Features
- add @since to method comments (13eff8e)
- add declarations for methods (1e10c95)
- add tests for cluster (1eba58b)
- always parse username passed via URI (c6f41f6)
- drop support of Node.js 10 (f9a5071)
- drop support of third-party Promise libraries (2001ec6)
- expose official declarations (7a436b1)
- improve typings for cluster (06782e6)
- improve typings for pipeline (334242b)
- improve typings for smismember (487c3a0)
- improve typings for transformers (94c1e24)
- improve typings for xread (96cc335)
- Pipeline-based script loading (8df6ee2)
- prepare v5 stable release (#1538) (fe32ce7)
- Refactor code with modern settings (a8ffa80)
- skip ready check on NOPERM error (b530a0b), closes #1293
- support commands added in Redis v7 (53ca412)
- support defining custom commands via constructor options (f293b97)
- support Redis Functions introduced in Redis 7.0 (32eb381)
BREAKING CHANGES
slotsRefreshInterval
is disabled by default,
previously, the default value was 5000.allowUsernameInURI
is removed and ioredis will always
use the username passed via URI.
Previously, theusername
part innew Redis("redis://username:authpassword@127.0.0.1:6380/4")
was ignored unlessallowUsernameInURI
is specified:new Redis("redis://username:authpassword@127.0.0.1:6380/4?allowUsernameInURI=true")
.
Now, if you don't want to send username to Redis, just leave the username part empty:
new Redis("redis://:authpassword@127.0.0.1:6380/4")
Redis#serverInfo
is removed. This field is never documented so
you very likely have never used it.- Support for third-party Promise libraries is dropped. Related methods (
exports.Promise = require('bluebird')
) are kept but they don't take any effects. The native Promise will always be used. - We now require Node.js v12 or newer.
Redis
can't be called as a function anymore as it's now a class.
Please changeRedis()
tonew Redis()
. Note thatRedis()
was already deprecated
in the previous version.