Skip to content

v5.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 26 Mar 04:21
· 81 commits to main since this release

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, the username part in new Redis("redis://username:authpassword@127.0.0.1:6380/4")
    was ignored unless allowUsernameInURI 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 change Redis() to new Redis(). Note that Redis() was already deprecated
    in the previous version.