Для любого интернет-магазина и торговой площадки важнейшим показателем является его нагрузочная способность и обеспечиваемая скорость доступа посетителей к страницам этого магазина. И тут, кроме собственно производительности используемого оборудования, важным фактором является общая программная архитектура используемого решения. А в этой архитектуре не последнее значение имеют специальные решения для кэширования (промежуточного хранения) данных.

Существуют разные средства и технологии кэширования, которые могут применяться практически во всех звеньях любого мало-мальски сложного решения. Некоторые из этих технологий являются по сути встроенными в базовую инфраструктуру (ОС, СУБД, web-сервер), а некоторые – могут подключаться дополнительно. Учитывая степень влияния дополнительного кэша на общую производительность всей e-commerce платформы, его можно считать одним из важнейших компонентов для любой высоко- и средне-нагруженной системы. Поэтому сами программные инструменты и продукты, обеспечивающие кэширование, своими характеристиками и возможностями в значительной степени определяют и многие общие характеристики и возможности платформы в целом.

Все рассматриваемые e-commerce платформы позволяют использовать либо относительно стандартные промышленные решения для кэширования (Memcache, REDIS, Oracle Coherence, EHCache), либо какие-то фирменные продукты, заточенные конкретно под определенную платформу или семейство продуктов одного вендора.

Поддерживаемые (на уровне сервера приложений) средства кэширования
для разных e-commerce платформ

ПлатформаТехнология кэширования
IBM WebSphere Commerce DynaCache1, WebSphere eXtreme Scale2
Oracle Commerce Oracle Coherence3, JBoss Cache
SAP hybris4 EHCache4, Oracle Coherence
1С-Битрикс: Управление сайтом6 Memcache, eAccelerator5, APC, XCache, Windows Cache Extension for PHP
Magento6 REDIS, Memcache, Varnish Cache (при использовании Nexcess.net Turpentine Extension for Magento Turpentine Extension for Magento)
VirtueMart6 Memcache

DynaCache представляет собой технологию динамического кэширования Java-объектов (с поддержкой кластеризации и распределенного кэширования), встроенную в архитектуру IBM WebSphere Application Server.

WebSphere eXtreme Scale (WXS) расширяет возможности IBM WebSphere Application Server, работая поверх DynaCache API, и обеспечивает более масштабируемое и более адаптированное для использования в кластерной архитектуре решение для кэширования.

Oracle Commerce поддерживает Coherence  для любых используемых серверов приложений (WebLogic, WAS, JBoss), но для WebLogic возможности кэширования через Coherence немного шире (например, Coherence с модулем Coherence*Web можно также использовать для кэширования http-сессий).

SAP hybris включает возможность расширения встроенной подсистемы кэширования (hybris Regional Cache) подключением EHCache. Дополнительные плагины и модули позволяют использовать такие решения, как Coherence.

До версии 15.5. В более поздних версия поддержка eAccelerator отсутствует.

В силу особенностей PHP, для всех php-продуктов могут использоваться любые технологии кэширования php-кода (APC, OPCache, ... ). Но сами рассматриваемые платформы содержат расширенные средства кэширования и мониторинга, которые, кроме кэширования кода, позволяют осуществлять кэширование определенных данных и/или страниц, а также позволяют через административные интерфейсы управлять и наблюдать за работой механизма кэширования. Соответственно, в таблице представлены именно такие, поддерживаемые внутри платформы, инструменты кэширования.

Если рассматривать архитектуру кэширования в более широком плане, то следует отметить, что кэширование на уровне сервера приложений должно дополняться кэшированием результатов запросов к данным (query caching или ORM-caching) и кэшированием сессий и страниц на фронте (sessions cache или http-caching). И тут стоит задуматься о том, чтобы не множить сущности и использовать, там где это возможно, одну технологию. Например, при работе с платформой Oracle Commerce возможно реализовать все виды кэшей на базе Coherence – это позволит не развертывать отдельную инфраструктуру для кэширования, например, http-сессий.

Особенные сложности могут возникнуть при построении кластерных конфигураций. Для них требования к инструментам кэширования значительно усложняются, появляются дополнительные условия на случай сбоев и остановок отдельных серверов в кластере и т.п. Именно для таких ситуаций, например, предназначена технология IBM WebSphere eXtreme Scale. Соответствующий функционал имеется и в составе Oracle Coherence. Гораздо меньше (и это следует учитывать при выборе платформы) к кластерным конфигурациям адаптируются решения на PHP. Здесь для организации распределенного механизма кэширования можно использовать REDIS или Couchbase (взамен Memcache).