Nuxeo Server

Redis Configuration

Updated: September 22, 2017 Page Information Edit on GitHub

Nuxeo instances should be configured with a Redis server (in addition to the regular SQL database) in the following cases:

  1. When it's important that asynchronous jobs not yet executed be kept across server restarts.
  2. In cluster mode to allow:

For a robust production instance, the first point is always necessary, which means that Redis should always be used.

Visit the Nuxeo and Redis page for more information.

Configuring Redis

The Nuxeo Platform supports the following Redis versions:

Nuxeo Platform Version: 9.2 9.1 LTS 2016 LTS 2015 6.0
Redis 2.8.x
3.0.x
3.2.x
4.0.x
2.8.x
3.0.x
3.2.x
4.0.x
2.8.x
3.0.x
3.2.x
4.0.x
2.8.x
3.0.x
3.2.x
4.0.x
2.8

The following Redis configuration points should be checked:

  • The server memory should be enough to hold the Redis database (the size depends on the usage: transient store, cache, the backlog of asynchronous jobs).
  • Redis persistence should be configured appropriately for the level of service required. In particular the RDB files should be used as backups and periodically saved offsite.
  • Redis master-slave replication should be set up, for robustness (fast disaster recovery). Note that Nuxeo Platform 5.8 does not yet know how to use the slaves for read-only operation.

Configuring Nuxeo for Redis

To make the Nuxeo Platform use Redis, you must activate the following in bin/nuxeo.conf:

nuxeo.redis.enabled=true
nuxeo.redis.host=redishost

The nuxeo.redis.host must be the hostname or IP address of your master Redis server. All the Nuxeo instances in a Nuxeo cluster must of course point to the same Redis server.

Also available are (with defaults):

nuxeo.redis.port=6379
nuxeo.redis.prefix=nuxeo:
nuxeo.redis.password=
nuxeo.redis.database=0
nuxeo.redis.timeout=2000
nuxeo.redis.maxTotal=16
nuxeo.redis.maxIdle=8
nuxeo.work.queuing=redis

The nuxeo.redis.port is self-explanatory, 6379 is the value for a default Redis installation.

The nuxeo.redis.prefix is the prefix used for all Nuxeo keys stored and read in Redis. This allows you to use a single Redis server between several Nuxeo cluster installations by having a different prefix for each cluster, but this is not really recommended. All keys used for Work queue management have work: added after this prefix. Those related to caching use cache: after this prefix. For locking, lock: followed by the repository name is used.

The nuxeo.redis.password, nuxeo.redis.database and nuxeo.redis.timeout are standard Redis parameters, although rarely used.

nuxeo.redis.maxTotal sets the maximum size of the Redis connections pool (available since 8.2).

nuxeo.redis.maxIdle sets the maximum number of Redis idle connections in the pool (available since since 8.2).

When nuxeo.redis.enabled=true then the following is automatically activated as well: nuxeo.work.queuing=redis. (As of Nuxeo Platform 5.8, work queuing is the only use of Redis in the standard Nuxeo modules, so it makes sense to activate both together.)

To activate the Redis cluster invalidation in cluster mode you need to add:

repository.clustering.invalidation=redis

High Availability

If needed, you may configure nuxeo for resolving the Redis server through sentinels.

nuxeo.redis.ha.enabled=true
nuxeo.redis.ha.master=mymaster
nuxeo.redis.ha.hosts=sentinel1,sentinel2,....
nuxeo.redis.ha.port=26379

Nuxeo will ask sentinel hosts in the declaring order at port 26379 for the server mymaster.

3 days ago manonlumeau NXDOC-1323: Update BDE doc
a year ago Solen Guitter 19 | se excerpt for compatibility version
a year ago Manon Lumeau 18
2 years ago Solen Guitter 17
2 years ago Solen Guitter 16
2 years ago Antoine Taillefer 15
2 years ago Solen Guitter 14 | Update Redis version (3.0 instead of 2.8)
2 years ago Benoit Delbosc 13
2 years ago Benoit Delbosc 12
2 years ago Benoit Delbosc 11
2 years ago Antoine Taillefer 10
2 years ago Antoine Taillefer 9
2 years ago Maxime Hilaire 8
2 years ago Stéphane Lacoin 7
2 years ago Stéphane Lacoin 6
3 years ago Florent Guillaume 5 | Info about prefix.
4 years ago Solen Guitter 4 | use Nuxeo Platform 5.8 instead of Nuxeo 5.8
4 years ago Florent Guillaume 3
4 years ago Florent Guillaume 2
4 years ago Florent Guillaume 1
History: Created by Florent Guillaume