/aedes-persistence-redis

Aedes persistence, backed by redis

Primary LanguageJavaScriptMIT LicenseMIT

aedes-persistence-redis

.github/workflows/ci.yml Dependencies Status devDependencies Status
Known Vulnerabilities Coverage Status NPM version NPM downloads

Aedes Persistence, backed by Redis.

See aedes-persistence for the full API, and Aedes for usage.

Install

npm install aedes aedes-persistence-redis --save

Upgrade

Please check UPGRADE.md when upgrading from a previous version.

API

aedesPersistenceRedis([opts])

Creates a new instance of aedes-persistence-redis. It takes all the same options of ioredis, which is used internally to connect to Redis.

This constructor creates two connections to Redis.

Example:

aedesPersistenceRedis({
  port: 6379,          // Redis port
  host: '127.0.0.1',   // Redis host
  family: 4,           // 4 (IPv4) or 6 (IPv6)
  password: 'auth',
  db: 0,
  maxSessionDelivery: 100, // maximum offline messages deliverable on client CONNECT, default is 1000
  packetTTL: function (packet) { // offline message TTL, default is disabled
    return 10 //seconds
  }
})

Alternatively, you can pass in an externally created Redis connection using the conn option. This can be useful when connecting to a Redis cluster, for example.

Example:

aedesPersistenceRedis({
  conn: new Redis.Cluster([{
    port: 6379,
    host: '127.0.0.1'
  }, {
    port: 6380,
    host: '127.0.0.1'
  }]),
  cluster: true
})

The same as above but with cluster option:

aedesPersistenceRedis({
  cluster: [{
    port: 6379,
    host: '127.0.0.1'
  }, {
    port: 6380,
    host: '127.0.0.1'
  }]
})

Changes in v4.x

v4 has changed the subscriptions key schema to enhance performance. Please check related PR for more details.

License

MIT