Memcached — программное обеспечение, реализующее сервис кэширования данных в оперативной памяти, тем самым, ускоряет работу приложения и снижает нагрузку на сервер.
Memcache - это демон кэширования, разработанный специально для динамические веб-приложения для уменьшения загрузки базы данных сохранение объектов в памяти.
Принцип действия Memcached: в оперативной памяти сервера, который доступен по сетевому протоколу, хранятся определенные данные, доступ к которым осуществляется через ключ или имя. Поэтому memcached иногда определяют как хэш-таблицу, которая используется для кэширования страничного кода, результатов запросов к базам данных и так далее.
Используйте скрипты из моей статьи, чтобы разобраться работает у вас кеширование Memcache или нет. Чтобы получить такой результат, как на скриншоте по на нагрузке на Mysql, мне потребовалось почти полтора месяца биться головой о стену.
Вы можете облегчить себе жизнь, используя мои наработки, для создания правильного технического письма в техподдержку вашего хостинг провайдера. Удачи!
# netstat -tap | grep memcached tcp 0 0 localhost:11211 *:* LISTEN 21488/memcached
<?php if (class_exists('Memcache')) { $server = 'localhost'; if (!empty($_REQUEST['server'])) { $server = $_REQUEST['server']; } $memcache = new Memcache; $isMemcacheAvailable = @$memcache->connect($server); if ($isMemcacheAvailable) { $aData = $memcache->get('data'); echo '<pre>'; if ($aData) { echo '<h2>Data from Cache:</h2>'; print_r($aData); } else { $aData = array( 'me' => 'you', 'us' => 'them', ); echo '<h2>Fresh Data:</h2>'; print_r($aData); $memcache->set('data', $aData, 0, 300); } $aData = $memcache->get('data'); if ($aData) { echo '<h3>Memcache seem to be working fine!</h3>'; } else { echo '<h3>Memcache DOES NOT seem to be working!</h3>'; } echo '</pre>'; } } if (!$isMemcacheAvailable) { echo 'Memcache not available'; } ?>
Установка в Ubuntu и поддержка для PHP:
apt install memcached apt install php8.1-memcache php8.1-memcached
Сервис memcache у хостинг провайдера Timeweb доступен по умолчанию на всех серверах виртуального хостинга. Для подключения используйте следующие параметры: сервер: localhost (127.0.0.1); порт: 11211.
Скрипт при первом запуске, создает тестовый ключ. Следует обновить страницу и убедится что ключ создан и работает.
<?php error_reporting(E_ALL|E_STRICT); ini_set('display_errors', true); $mem = new memcached(); $mem->addServer("127.0.0.1",11211); $result = $mem->get("Test"); if ($result) { echo $result; } else { echo "Тестовый ключ не найден, добавляю... Обновите страницу."; $mem->set("Test", "Ключ найден, memcached работает") or die("Не получилось..."); } ?>
Для просмотр статистики memcached используются скрипты, входящие в поставку демона
/usr/share/memcached/scripts/memcached-tool 127.0.0.1 stats
Просмотр использования памяти Memcached
/usr/share/memcached/scripts/memcached-tool 127.0.0.1 display
Просмотр содержимого кеша
/usr/share/memcached/scripts/memcached-tool 127.0.0.1 dump | less
Читайте также: Что такое PHP хостинг?, W3 Total Cache позволяет подключить memcached к Wordpress, Установка, настройка, оптимизация хранилища Redis.