Разрабатываю сайты

БЛОГ ПРО WEB

Рассказываю о web-разработке
и помогаю создавать сайты

Memcache PHP + сайт = быстрый сайт

mEMCACHED

Что такое Memcache?

Изначально Memcache была разработана для портала LiveJournal.com для увеличения скорости работы сайта. С помощью Memcache php можно свести скорость загрузки вывода данных из баз данных, практически до нуля. При выводе из БД, сохраняются строки в кэш и при следующем выводе проверяется кэш по определенному запросу.

Если есть данные, выводим, если нет тянем из базы и сохраняем в Memcache php. Естественно, при изменении контента строки в бд, необходимо очистить кэш, для того чтобы применить изменения.

Думаю все понятно.

Как установить Memcache на сайт?

Не совсем правильный вопрос, но всё же я часто слышу его.
По умолчанию, на хостинге вряд ли будет подключен Memcache. Есть 3 варианта подключения.
1. Если в настройках хостинга есть пункт Memcache, то просто включите услугу.
2. Если его нет в настройках, можете попросить тех. поддержку подключить Memcache за дополнительную плату
3. Подключение вручную, имея доступ SSH

5 Функций Memcache PHP

Всего функций 5, но нам больше и не требуется

get() – извлекает значение по ключу
set() – устанавливает значение
add() – добавляет кэш, если его не существует
replace() – заменяет кэш
flush() – удаляет все данные из Memcache

Простой пример использования Memcache

Дальше код с подробными комментариями

// Подключаем Memcache на страницу
$memcache = new Memcache;
$memcache->connect('127<a href="https://dimasudarkin.ru/wp-content/themes/moments/img/5243623.html">.</a>0.0.1', 11211) or die ("Could not connect");
//
// Подключаем базу данных
include('data/db.php');
//
// Имеем следующий запрос
$query = "SELECT * FROM pages where id='4'";
//
// Вытаскиваем все что есть в Memcache с этим запросом
$get_row = $memcache -> get(md5($key));
//
// Проверяем, получилось ли что нибудь получить
if ($get_row) { // Если получилось, то выводим
echo $get_row['title'];
echo $get_row['content'];
}else{ // Если же пусто в Memcache, то придется вытаскивать из БД и забивать в кэш
$result = mysql_query($query);
$row = mysql_fetch_array($result);
// Смотрим что имеем
print_r($row);
// Забиваем в Memcache для последующих запросов к этой строке
$memcache -> set($key, $row, TRUE, 20); // Хранить результат 20 секунд
}

Думаю, это поможет Вам в начале познания Memcache php ) Удачи


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *