How to Setup Redis Cache for Magento 2

How to Setup Redis Cache for Magento 2

Redis is a popular key-value storage database, cache, and message broker. It helps keep stable performance for high traffic Magento stores.

Redis is used for PHP session storage. The backend supports tag-based cache cleanup without foreach loops.

Redis cache indexes tags in files. So the tag operations don’t have to do a full scan of each cache file.

Redis also supports on-disk save and master/slave replication. You get compression libraries like gzip and snappy.

Redis is useful for multi-server hosting. It allows a fast backend cache that does not require a low-level file system cache.

Best Magento Hosting now

Before Enabling Magento Redis Cache

  • Backup the server:

Ensure that you backup your Magento store and server settings. It allows for quick data restoration if there are any mishaps in the process.

  • Use a staging site for testing:

You should test the site updates on the staging site first. You can shift the updates to the live site if the updates are working.

It ensures you don’t damage the live site while changing the cache.

Magento Redis Cache Requirements

There are some prerequisites to set up Magento 2 Redis Cache on the hosting server:

  • Redis Server
  • PHP Redis Extension

Configure Redis Default Caching

Redis Configuration Essentials

Master the 4 Key Parameters for 60% Faster Magento Performance

SERVER Default
127.0.0.1

Local Redis installation for minimum latency

PORT Standard
6379

Standard Redis listening port

DATABASES Segregated
0
Default
1
Page
2
Session

Isolated databases for cache separation

IMPACT Performance
60% Faster

Page load time reduction with proper Redis config

Important: Database numbers must be different for each cache type to prevent data conflicts and ensure optimal performance in high-traffic environments.

Run the setup:config: set command. You can specify parameters of Redis default caching.

bin/magento setup:config: set --cache-backend=redis --cache-backend-redis-server=127.0.0.1 --cache-backend- redis-db=0

The --cache-backend=redis command enables the Redis default caching. You can skip this parameter if it is already enabled.

--cache-backend-redis-<parameter_name>=<parameter_value> is the key/value pairs. These key/value pairs configure the default caching. The list includes:

Command Line Parameter Parameter Description Default Value
cache-backend-redis-server server Indicates fully qualified hostname.

Also, the IP address, or an absolute path to a UNIX socket.
127.0.0.1

The default value of server 127.0.0.1 specifies that Redis is installed on the Magento server.
cache-backend-redis-port port It is Redis server listen port 6379
(server 127.0.0.1, port 6379)
cache-backend-redis-db database It is required if you use Redis for both full-page and default caching.

Here you specify the database number for one of the caches. The other caching option uses 0 by default.

Note: The database numbers have to be different if you use different types of caching.

You can assign the default caching db number to 0 and the page caching db number to 1.
Assign the session cache storage db number to 2.
0
(database 0. port 6379)
cache-backend-redis-password password Setting up a Redis password enables its security feature: the auth command.

You have to configure the password in the Redis caching configuration file /etc/redis/redis.conf.

Example Command

The example command enables Redis default caching. You can set the host to 127.0.0.1 and assign the database number to 0.

bin/magento setup:config: set --cache-backend=redis --cache-backend-redis-server=127.0.0.1 --cache-backend-redis-db =0

Configure Redis Page Caching

Run the setup:config:set command with other parameters.

bin/magento setup:config:set --page-cache= redis --page -cache-redis-<parameter_name>=<parameter_value>...

The --page-cache=redis command will enable Redis page caching.

--page -cache-redis-<parameter_name>=<parameter_value> is the parameter/value pairs that set up page caching. The list includes:

  • Cache-backend-redis-server
  • Cache-backend-redis-port
  • Cache-backend -redis-db
  • Cache-backend-redis-password

Example Command

The example command is used to enable Redis page caching. It sets the host to 127.0.0.1 and assigns the database number to 1.

bin/magento setup:config:set --page-cache=redis --page-cache-redis-server=127.0.0.1 --page-cache-redis-db =1

Results

The two example commands of Redis CLI result in Magento adding lines that are similar to <Magento install dir>app/etc/env.php

'cache' => [
'frontend' => [
        'default' => [
            'backend' => 'Magento\\Framework\\Cache\\Backend\\Redis',
            'backend_options' => [
              'server' => '127.0.0.1',
                'database' => '0',
                'port' => '6379'
            ],
       ],
        'page_cache' => [
            'backend' => 'Magento\\Framework\\Cache\\Backend\\Redis',
            'backend_options' => [
                'server' => '127.0.0.1',
                'port' => '6379',
                'database' => '1',
                'compress_data' => '0'
            ]
        ]
    ]
],

Configure Redis for Session Storage

Session Storage Parameters

Comparison of key storage configurations across different session types

Parameter Standard Session Enhanced Session
Storage Duration 24 hours 7 days
Max Size 5 MB 10 MB
Encryption AES-128 AES-256
Auto-Save Every 5 min Real-time
Sync Across Devices No Yes

Key Advantage

Enhanced sessions provide 3x longer retention, 2x storage capacity, and real-time synchronization

You can configure Redis session storage with Magento’s command line options. Run the setup:config:set command and specify the parameters for Redis.

bin/magento setup:config:set --session-save=redis --session-save-redis-<parameter_name>=<parameter_value>...

The --session-save=redis is used to enable Redis session storage.

Redis Log Level Hierarchy

8-tier system for controlling log verbosity and debugging detail

Level 0

Emergency

Most Severe

System unusable, catastrophic failures

Default
Level 1

Alert

Immediate Action

Critical issues requiring immediate response

Level 2

Critical

Component Failure

Application component unavailable

Level 3

Error

Runtime Issues

Non-critical runtime errors needing monitoring

Level 4

Warning

Additional Info

Potential issues, gathering more information

Level 5

Notice

Normal Events

Normal but essential conditions

Level 6

Info

Essential Messages

Important operational messages

Level 7

Debug

Development

Detailed information for development/testing

Cumulative Logging: Higher levels include all lower-level messages

Production Best Practice: Level 1

--session-save-redis-<parameter_name>=<parameter_value> is a list of parameter/value pairs. Some of the parameters to configure session storage include:

Command Line Parameter Parameter Description or Meaning Default Value
session-save-redis-host host Hostname, IP address, or the absolute path if using UNIX sockets. localhost
session-save-redis-port port Specifies Redis server listen port 6379
session-save-redis-password password Specifies a password. Add it if your Redis server requires an auth password. empty
session-save-redis-timeout timeout Specify the connection timeout, in seconds. 2.5
session-save-redis-persistent-id persistent_identifier Configure a unique string to enable persistent connections.

For example: sess-db0
session-save-redis-db database Configure unique Redis database number.
A unique number for each db prevents data loss.

Note: The database numbers should be different for Redis caching types.

Assign the default caching db number to 0. The page caches db to 1, and the session storage db number to 2
0
session-save-redis-compression-threshold compression_ threshold Set to 0 to disable the compression threshold.

It is recommended when suhosin.session.encrypt = On
2048
session-save-redis-compression-lib compression_library Set in the following options: gzip, lzf, lz4 or snappy. gzip
session-save-redis-log-level Configure any of the following:

0 for emergency and most severe errors.
1 for alerting and immediate action
2: critical when an application component is not available.
3 for error: It includes runtime errors. Not critical requires monitoring. 4 for warning: To get additional information.

5 for notice: Normal but essential condition) 6 for info: To get essential messages.
7 for debug: Information for development or testing.
1

Conclusion

Using Redis for Magento will allow your store to run faster. It offers horizontal and vertical scaling. Redis cache is sharable on multiple servers and supports cache tag.

Redis also allows many databases for the Magento cache. It includes a full-page cache and sessions. You don’t have to start processes listening on different ports.

Redis Cache is a popular choice to keep stable and high performance for your store.

Learn more on Magento backend on the MGT-Commerce tutorials.

Nikita S.
Nikita S.
Lead Technical Writer

As a lead technical writer, Nikita S. is experienced in crafting well-researched articles that simplify complex information and promote technical communication. She has expertise in cloud computing and holds a specialization in SEO and digital marketing.


Get the fastest Magento Hosting! Get Started