PHP

Как работать с memcache из php

Попросил админа нашего сервера установить memcached, и pecl расширение для php memcache. В результате получил очень эффективное средство для кеширования данных. Штука настолько удобная, что сразу же захотелось о ней написать.

Если все уже установлено, то в php Вам должен быть доступен класс Memcache. Дальше все просто. Погуглив нашел пару интересных примеров.

<?php
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 12121) or die('не могу соедениться');

//пробуем получить mykey
$key = @$memcache->get('mykey');
if(!empty($key))
	//Если объект уже в кеше, выводим его значение
	echo $key;
else{
	//иначе с ключом mykey, создадим его
	//Объект mykey будет храниться 10 секунд и не будет сжат
	$memcache->set('mykey', date('H:i:s'), false, 10);
	echo $memcache->get('mykey'); // выводим значение
}
//Закрываем соединение с сервером Memcached
$memcache->close();
?>

Где это можно использовать? Например для кеширования запросов к однотипным запросам к БД или для кеширования сгенерированной страницы.

Раньше я делал это при помощи файлов. Сейчас все стало гораздо проще

<?php
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 12121) or die('не могу соедениться');
$key = md5(serialize($_GET)); // это наг запрос
//можно место serialize($_GET) использовать $_SETVER['REQUEST_URI']
if(!empty($page = @$memcache->get($key)))
	echo $page;
else{
	ob_start();
	echo 'привет мир и еще 1000000 запросов к БД';
	$memcache->set($key, ob_get_contents(), false, 60); // кешируем на минуту, без сжатия
}

плюс в том, что теперь нет расходов на обращение к файлам, а есть быстрое обращение к памяти.

Так можно сохранять в памяти целые объекты.

Очень полезно для работы с сессиями. А еще очень удобно будет работать с такой памятью в приложениях типа чата, или социальной сети.
Теги:
memcache
Добавлено: 20 Апреля 2018 20:23:22 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...