Administrators/Optimize performance/Cache

Use Redis
For big sites with a lot of traffic and/or a high amount of products (50 000 and more), the database might become a bottleneck. In this case it makes sense to move the cache to a different server to decrease the load on the main database. Arcavias provides a Redis cache extension for storing the cached parts of a page in a Redis server, which keeps the cached entries in memory.

Note: The hardware that hosts the Redis server should be in the same network as the web servers to minimize the latency for each request. Usually, the transfer over the network takes much longer than the look up of the data in the Redis server. Try to keep the round trip time as low as possible (at least below 5ms) to get the best performance because for each of the shop parts on a page a request is made.

Fine-grained cache control
By default, if a product is added, changed or deleted, all cache entries that contain products will be deleted and regenerated on the next request. Even if Arcavias is really fast without caching, the difference is at least 50% more load on the server while the cache is regenerated.

Arcavias can be told to use a more fine-grained cache tag system that allows to delete only those cache entries that are (probably) affected. In this case if a product is added, changed or deleted, only the cache entries for the product lists and the detail view for this product are deleted instead of the cached detail views for all products as well. To activate this behaviour, use this configuration option:


 * client/html/common/cache/mode/tag-all

Caution: This configuration option isn't enabled by default because it generate a lot of tags for each cached entries. Up to 400 are very common in a standard setup. The default database cache implementation can't store tags within a single database update and requires a database request for each tag. This slows down the first request very much (up to five times of a request without caching)! Therefore, it's currently only recommended in combination with the Redis extension, which is able to store the cache entry and all tags in one request.