Magento L2 Cache Configuration
Are slow load times slowing your Magento store? Optimizing Magento L2 cache configuration can enhance store performance and Magento UX. It increases site speed and reduces network congestion. This tutorial covers Magento L2 cache configuration, focusing on real-world examples.
Key Takeaways
-
Learn how Magento L2 cache configuration can improve your Magento store's performance.
-
Understand the importance of reducing network congestion and optimizing site speed.
-
Discover the mechanisms behind Magento L2 cache, including remote and local caching strategies.
-
Explore practical examples and configurations for implementing Magento L2 cache setup.
-
Gain insights into the use of the stale_cache_enabled option.
What is Magento L2 Cache?
Magento L2 cache minimizes network congestion and bandwidth usage between microservices. This mechanism's implementation occurs with the
\Magento\Framework\Cache\Backend\RemoteSynchronizedCache class.
Caching reduces network traffic between remote cache storage and the Commerce application. To reduce network bandwidth to Redis, web nodes store cache data. The remote cache is important to check for the latest version and transfer it when necessary.
Commerce stores a hashed version of the data in Redis. It appends ‘:hash’ to keys. It ensures local caches stay up-to-date through a cache adapter.
Why Use Magento L2 Cache?
Reasons | Explanations |
---|---|
Reduce network congestion | Magento L2 cache minimizes network congestion and bandwidth usage between microservices. It enhances site speed. |
Increase site speed | By caching data on web nodes, Magento L2 cache boosts site speed and responsiveness. It uses remote cache storage only when necessary. |
Optimize network bandwidth | Caching data reduces the need for constant communication with remote cache storage. It optimizes network bandwidth and improves data retrieval efficiency. |
Enhance cache efficiency | Magento L2 cache configuration employs both remote and local caching strategies. It ensures efficient cache usage and maximizes data retrieval performance. |
Improve user experience | Optimizing Magento L2 cache configuration reduces load times. It also improves site performance, resulting in a better user experience. |
Magento L2 Cache Configuration Example
Change or replace the cache section in the app/etc/env.php file as shown in the following example:
'cache' => [
'frontend' => [
'default' => [
'backend' => '\\Magento\\Framework\\Cache\\Backend\\RemoteSynchronizedCache',
'backend_options' => [
'remote_backend' => '\\Magento\\Framework\\Cache\\Backend\\Redis',
'remote_backend_options' => [
'persistent' => 0,
'server' => 'localhost',
'database' => '0',
'port' => '6379',
'password' => '',
'compress_data' => '1',
],
'local_backend' => 'Cm_Cache_Backend_File',
'local_backend_options' => [
'cache_dir' => '/dev/shm/'
]
],
'frontend_options' => [
'write_control' => false,
],
]
],
'type' => [
'default' => ['frontend' => 'default'],
],
],
In the example above:
i) backend
= L2 cache implementation.
ii) backend_options
= L2 cache configuration.
-
remote_backend
= remote cache implementation: Redis or MySQL. -
remote_backend_options
= remote cache configuration. -
local_backend
= local cache implementation: Cm_Cache_Backend_File -
local_backend_options
= local cache configuration. -
cache_dir is an option specific to file caching. It specifies the directory for storing the local cache.
Adobe advises utilizing Redis for remote caching (\Magento\Framework\Cache\Backend\Redis
) and Cm_Cache_Backend_File
for local data caching in shared memory, with the configuration: 'local_backend_options' => ['cache_dir' => '/dev/shm/']
Adobe also suggests using the cache preload feature to reduce the load on Redis. Remember to append the suffix ':hash' to preload keys.
How to Configure Stale Cache Options
Starting with Commerce 2.4, the use_stale_cache option is available. It can enhance performance by reducing lock waiting times in certain situations. Yet, with an increase in the number of Blocks or Cache, lock waiting times can increase.
In extreme cases, the Block/Config cache may contain hundreds of keys. Even minor lookup timeouts can cause delays. These delays can last several seconds.
The stale cache is compatible only with the L2 cache. It allows sending an outdated cache when a new one's creation occurs in parallel. To enable stale cache, include 'use_stale_cache' => true in the top config of the L2 cache.
Adobe advises activating the "use_stale_cache" option. You should only use it for cache categories. These categories should be the ones that benefit the most from it, such as:
-
block_html
-
config_integration_api
-
config_integration
-
full_page
-
layout
-
reflection
-
translate
Adobe recommends not enabling the use_stale_cache setting for the default cache.
Here is an example configuration:
'cache' => [
'frontend' => [
'default' => [
'backend' => '\\Magento\\Framework\\Cache\\Backend\\RemoteSynchronizedCache',
'backend_options' => [
'remote_backend' => '\\Magento\\Framework\\Cache\\Backend\\Redis',
'remote_backend_options' => [
'persistent' => 0,
'server' => 'localhost',
'database' => '0',
'port' => '6379',
'password' => '',
'compress_data' => '1',
],
'local_backend' => 'Cm_Cache_Backend_File',
'local_backend_options' => [
'cache_dir' => '/dev/shm/'
]
],
'frontend_options' => [
'write_control' => false,
],
],
'stale_cache_enabled' => [
'backend' => '\\Magento\\Framework\\Cache\\Backend\\RemoteSynchronizedCache',
'backend_options' => [
'remote_backend' => '\\Magento\\Framework\\Cache\\Backend\\Redis',
'remote_backend_options' => [
'persistent' => 0,
'server' => 'localhost',
'database' => '0',
'port' => '6379',
'password' => '',
'compress_data' => '1',
],
'local_backend' => 'Cm_Cache_Backend_File',
'local_backend_options' => [
'cache_dir' => '/dev/shm/'
],
'use_stale_cache' => true,
],
'frontend_options' => [
'write_control' => false,
],
]
],
'type' => [
'default' => ['frontend' => 'default'],
'layout' => ['frontend' => 'stale_cache_enabled'],
'block_html' => ['frontend' => 'stale_cache_enabled'],
'reflection' => ['frontend' => 'stale_cache_enabled'],
'config_integration' => ['frontend' => 'stale_cache_enabled'],
'config_integration_api' => ['frontend' => 'stale_cache_enabled'],
'full_page' => ['frontend' => 'stale_cache_enabled'],
'translate' => ['frontend' => 'stale_cache_enabled']
],
],
FAQs
stale_cache_enabled
configuration?
1. What is the purpose of the The stale_cache_enabled
configuration aims to enhance site performance. It uses both remote and local caching strategies. This approach serves stale content from the cache while new content generation occurs. As a result, it reduces load times and improves the user experience.
remote_backend
configuration enhance Magento's caching capabilities?
2. How does the The remote_backend
configuration uses Redis for caching. It offers high availability and persistence capabilities. This setup boosts Magento’s cache efficiency. Dedicated Magento hosting provides a scalable and reliable caching layer. It helps in handling high traffic loads.
local_backend
set to Cm_Cache_Backend_File
?
3. Why is the The local_backend
configuration occurs as Cm_Cache_Backend_File
. This configuration uses the file system to store cache data. It serves as a fallback or secondary cache. It allows for quick data retrieval without needing remote cache access. It helps reduce latency and boosts performance.
use_stale_cache
option play in cache management?
4. What role does the The use_stale_cache
option lets Magento serve cached content, even when it's stale. Users can access content without delay or interruption. Meanwhile, the system updates the cache in the background. It ensures the website stays fast and responsive.
5. Can customization of cache configuration occur for different parts of a Magento site?
Yes, Magento's cache configuration is flexible. Its customization can take place for various site parts. They include layouts, block HTML, and full-page caches. This granularity permits optimized caching strategies for each area. It enhances site performance and efficiency.
Summary
Magento L2 cache configuration boosts store performance by cutting database load and speeding up page loads. Key features include:
-
Implementing both remote and local caching strategies:
-
Ensuring automatic cache clearing for efficiency
-
Achieving improved page load times for faster access
-
Enhancing overall better user experience through optimization
-
Offering a stale cache option for better data management
Ready to enhance your Magento store's cache performance? Explore managed Magento hosting plans.