Я пытаюсь уменьшить объем доступа к базе данных, предоставляя кеш в памяти. Я понимаю, что я могу получить кеш, используя сеанс и файлы cookie, однако это работает только для каждого клиента. если один и тот же запрос выполняется один раз в каждом сеансе, то кеш будет бесполезным. Но я хочу только один раз получить доступ к базе данных и кэшировать ее.
Есть ли способ создать кэш в памяти, к которому можно получить доступ с помощью скрипта на стороне сервера? Я не хочу хранить данные кэша в файле.
Вы можете использовать MemCache , если он установлен.
Другой вариант – создать таблицу в MySQL с типом памяти MEMORY . Вы все равно будете использовать базу данных, но это будет намного быстрее. Но MemCache действительно уменьшит нагрузку на базу данных, поскольку вы можете кэшировать данные за пределами базы данных даже на другом сервере.
На общем пространстве размещения у вас может не хватить memcache. Проверьте APC в этом случае. Memcache действительно качается, если вы работаете на нескольких машинах. Если вы используете свой сайт на одном веб-сервере, APC будет выполнять ту же работу (с более низкими накладными расходами).
Попробуйте MemCache
Модуль Memcache обеспечивает удобный процедурный и объектно-ориентированный интерфейс для memcached, высокоэффективного демона кэширования, который был специально разработан для снижения загрузки базы данных в динамических веб-приложениях.
Memecached / Memcache – наиболее широко используемые решения, если вы хотите иметь несколько серверов или иметь доступ к кешу с несколькими машинами.
Однако, если вы хотите, чтобы ваш кеш был локальным (на том же компьютере, который запускает PHP-код), у вас есть другие, несколько более простые варианты:
Модуль APC также может хранить материал в памяти с помощью apc_add
, apc_fetch
т. Д. …
Или вы можете использовать стандартные файлы в tmpfs
. Это имеет то преимущество, что вы полностью переносимы, и вы можете настроить его очень быстро, если какая-либо система кеширования использует файлы.