Memcache

Memcached — программное обеспечение, реализующее сервис кэширования данных в оперативной памяти, тем самым, ускоряет работу приложения и снижает нагрузку на сервер.

Memcache - это демон кэширования, разработанный специально для динамические веб-приложения для уменьшения загрузки базы данных сохранение объектов в памяти.

Принцип действия Memcached: в оперативной памяти сервера, который доступен по сетевому протоколу, хранятся определенные данные, доступ к которым осуществляется через ключ или имя. Поэтому memcached иногда определяют как хэш-таблицу, которая используется для кэширования страничного кода, результатов запросов к базам данных и так далее.

  1. Вы можете посмотреть вывод функции phpinfo или проверить, доступна ли какая-либо из функций memcache.
  2. Код проверит, включено ли расширение memcache, и также работает ли демон и может ли он хранить и извлекать данные успешно
    <?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';
    }
     
    ?>

Сервис 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("Не получилось...");
}
?>
Skyeng