Important

You are browsing the documentation for version 4.2 of OroCommerce, OroCRM and OroPlatform, which is no longer maintained. Read version 5.1 (the latest LTS version) of the Oro documentation to get up-to-date information.

See our Release Process documentation for more information on the currently supported and upcoming releases.

Configure Application to Use Redis

Configuration for Standalone Redis Setup

Update the config/parameters.yml with the following:

session_handler:    'snc_redis.session.handler'
redis_dsn_session:  'redis://127.0.0.1:6379/0'
redis_dsn_cache:    'redis://127.0.0.1:6380/0'
redis_dsn_doctrine: 'redis://127.0.0.1:6380/1'
redis_dsn_session_type: 'standalone' #optional, current configuration is applied if it's not set
redis_dsn_cache_type: 'standalone' #optional, current configuration is applied if it's not set
redis_dsn_doctrine_type: 'standalone' #optional, current configuration is applied if it's not set

Configuration for Redis Cluster Setup

Update the config/parameters.yml with the following:

session_handler:    'snc_redis.session.handler'
redis_dsn_session:  ['redis://127.0.0.1:6379/0?alias=master','redis://127.0.0.1:6380/0']
redis_dsn_cache:    ['redis://127.0.0.1:6381/0?alias=master','redis://127.0.0.1:6382/0']
redis_dsn_doctrine: ['redis://127.0.0.1:6381/1?alias=master','redis://127.0.0.1:6382/0']
redis_dsn_session_type: 'cluster'
redis_dsn_cache_type: 'cluster'
redis_dsn_doctrine_type: 'cluster'

Configuration for Sentinel Redis Setup

Update the config/parameters.yml with the following:

session_handler:    'snc_redis.session.handler'
redis_dsn_session:  ['redis://127.0.0.1:26379/0','redis://127.0.0.1:26379/0']
redis_dsn_cache:    ['redis://127.0.0.1:26379/1','redis://127.0.0.1:26379/1']
redis_dsn_doctrine: ['redis://127.0.0.1:26379/2','redis://127.0.0.1:26379/2']
redis_dsn_session_type: 'sentinel'
redis_dsn_cache_type: 'sentinel'
redis_dsn_doctrine_type: 'sentinel'
redis_session_sentinel_master_name: 'sessions_mon'
redis_cache_sentinel_master_name: 'lru_cache_mon'
redis_doctrine_sentinel_master_name: 'lru_cache_mon'

In this case. it is required to provide redis-sentinel endpoints with db numbers for redis_dsn_session, redis_dsn_cache, redis_dsn_doctrine. The master service name, which is configured in sentinel.conf, needs to be provided in the redis_*_sentinel_master_name parameters.

sentinel monitor mymaster 127.0.0.1 2

Parameters redis_*_sentinel_prefer_slave are responsible for the selection of a preferable slave node via an IP address, if the cluster has several slaves and you need to connect to a specific one. These parameters can be a string that contains IP address or an array that contains a map with IP addresses of preferable slaves (the array key is the IP address of a Redis client, the array value is the IP address of a preferable slave).

Examples:

redis_session_sentinel_prefer_slave: '192.168.10.5'
redis_cache_sentinel_prefer_slave: '192.168.10.5'
redis_doctrine_sentinel_prefer_slave: '192.168.10.5'
redis_session_sentinel_prefer_slave:
    '192.168.10.1': '192.168.10.5'
    '192.168.10.2': '192.168.10.5'
    '192.168.10.3': '192.168.10.6'
redis_cache_sentinel_prefer_slave:
    '192.168.10.1': '192.168.10.5'
    '192.168.10.2': '192.168.10.5'
    '192.168.10.3': '192.168.10.6'
redis_doctrine_sentinel_prefer_slave:
    '192.168.10.1': '192.168.10.5'
    '192.168.10.2': '192.168.10.5'
    '192.168.10.3': '192.168.10.6'

If you use a map with IP addresses, the server IP address is obtained by calling gethostbyname(gethostname()). If, by some reasons, it is not acceptable, you can define the server_ip_address parameter in the config/parameters.yml and set the IP address of the server there.

Configure a static IP address:

server_ip_address: '192.168.10.1'

Obtain the IP address from an environment variable:

server_ip_address: '%env(SERVER_IP_ADDRESS)%'

Also, keep in mind that you have to set up at least 2 sentinel endpoints, otherwise the integration will not work.