We use cookies to understand how you interact with our site, to personalize and streamline your experience, and to tailor advertising. By continuing to use our site, you accept our use of cookies and accept our Privacy Policy.
Contact Us
Contact Us
Sign in
Sign in
Nexcess Logo

How to configure Redis for Magento 2

July 10, 2020

Redis is a popular key-value storage database and Magento 2 includes support for both page cache and sessions out of the box. In this guide we will cover how to configure Redis for Magento 2 through the command line.

Prerequisites:

  • Cloudhost with Magento 2.x 
  • The host must have Redis installed (All Nexcess servers have Redis installed)

Before configuring Redis, we will need the IP, a value we will later use as the Redis host. To find the correct path to your Redis instance, log in to the portal, click on the site you are configuring and under the Environment tab you will find you Redis IP:

Configuration:

Once we have this value, we will configure Redis default caching by running:

php bin/magento setup:config:set --cache-backend=redis --cache-backend-redis-server=10.75.17.192 --cache-backend-redis-port=39706 --cache-backend-redis-db=0

Now, we do the same for Redis page caching:

php bin/magento setup:config:set --page-cache=redis --page-cache-redis-server=10.75.17.192 --page-cache-redis-port=39706 --page-cache-redis-db=1

As a result, you should see something like the following in your app/etc/env.php file:

'cache' => [
        'frontend' => [
            'default' => [
                'id_prefix' => '14c_',
                'backend' => 'Cm_Cache_Backend_Redis',
                'backend_options' => [
                    'server' => '10.75.17.192',
                    'database' => '0',
                    'port' => '39706',
                    'password' => '',
                    'compress_data' => '1',
                    'compression_lib' => ''
                ]
            ],
            'page_cache' => [
                'id_prefix' => '14c_',
                'backend' => 'Cm_Cache_Backend_Redis',
                'backend_options' => [
                    'server' => '10.75.17.192',
                    'database' => '1',
                    'port' => '39706',
                    'password' => '',
                    'compress_data' => '0',
                    'compression_lib' => ''
                ]
            ]
        ]
    ],

Once we are done with default and page cache, we will configure Redis for session storage:

php bin/magento setup:config:set --session-save=redis --session-save-redis-host=10.75.17.192 --session-save-redis-port=39706 --session-save-redis-log-level=4 --session-save-redis-db=2

Once completed, you should see something like the following in your app/etc/env.php file:

'session' => [
        'save' => 'redis',
        'redis' => [
            'host' => '10.75.17.192',
            'port' => '39706',
            'password' => '',
            'timeout' => '2.5',
            'persistent_identifier' => '',
            'database' => '2',
            'compression_threshold' => '2048',
            'compression_library' => 'gzip',
            'log_level' => '4',
            'max_concurrency' => '6',
            'break_after_frontend' => '5',
            'break_after_adminhtml' => '30',
            'first_lifetime' => '600',
            'bot_first_lifetime' => '60',
            'bot_lifetime' => '7200',
            'disable_locking' => '0',
            'min_lifetime' => '60',
            'max_lifetime' => '2592000',
            'sentinel_master' => '',
            'sentinel_servers' => '',
            'sentinel_connect_retries' => '5',
            'sentinel_verify_master' => '0'
        ]
    ],


There are extra configurations and parameters you can use for Redis in Magento 2, read the official documentation for a better understanding about when and how to use them.

A simple way to verify everything is working as expected is to navigate to var/cache, var/page_cache and var/session and check if the folders are empty. If they are and you can normally navigate your site, Redis has been correctly configured. If you still see files being generated inside those folders, something might have been wrongly installed.


Known issues:

You might be asked to overwrite old values in the app/etc/env.php file. In the case you aren’t sure what to do, answer No and create a backup of app/etc/env.php before repeating the process.



Miguel Balparda
Miguel Balparda

Who is Miguel? If you’re part of the Magento community, chances are you already know. As a Magento Master and open source Community Maintainer, Miguel can be found traveling the world imparting his Magento wisdom at events and approving pull requests everywhere else.