Skip to content

Relay cache backend

Integration with the PHP extension Relay, an alternative to PhpRedis.

Note: Version 0.6 or newer is required of the Relay extension.

Get Relay

You can download this library at:

https://relay.so/docs/installation

It is recommended to set the eviction policy to lru in php.ini

relay.eviction_policy = lru

Use the Relay interface (this happens by if PhpRedis and Predis are not available).

$settings['redis.connection']['interface'] = 'Relay';

In-Memory configuration

Relay includes an in-memory cache that is similar to the ChainedFastBackend that is used in Drupal by default, but far more efficient. When using Relay, it is recommended to explicitly set the cache backend to redis for the cache bins that by default use ChainedFastBackend:

$settings['cache']['default'] = 'cache.backend.redis';
$settings['cache']['bins']['config'] = 'cache.backend.redis';
$settings['cache']['bins']['discovery'] = 'cache.backend.redis';
$settings['cache']['bins']['bootstrap'] = 'cache.backend.redis';

Whether the in-memory cache is used can be configured per bin, the default configuration is to use it for the config, discovery and boostrap (those that use ChainedFastBackend by default) and container:

$settings['redis_relay_memory_bins'] = ['container', 'bootstrap', 'config', 'discovery'];

The default is only used when no configuration is set, if this is customized all bins that should use the in-memory cache must be set explicitly.

Use the Sentinel high availability mode

Redis can provide a master/slave mode with sentinels server monitoring them. More information about setting it : https://redis.io/topics/sentinel.

This mode needs the following settings:

Modify the host as follow:

// Sentinels instances list with hostname:port format.
$settings['redis.connection']['host']      = ['1.2.3.4:5000','1.2.3.5:5000','1.2.3.6:5000'];

Add the new instance setting:

// Redis instance name.
$settings['redis.connection']['instance']  = 'instance_name';

Connect to a remote host and database

See README.md file.

For this particular implementation, host settings are overridden by the UNIX socket parameter.