В интернете достаточно много информации на данную тему, но, несмотря на это, многие обходят её стороной. Цель данного поста, разъяснить на пальцах основы взаимодействия с Memcached.
#/etc/memcached.conf
#Memcached будет работать, как демон
-d
#Лог будет складывать туда
logfile / var/ log/
#Отведём 256 мегабайт ОЗУ под хранилище
-m 256
#Слушать будет этот порт
-p 11211
#В последствии желательно поменять
-u nobody
#Слушаем localhost
-l 127.0.0.1
# netstat -tap | grep memcached
tcp 0 0 localhost:11211 * :* LISTEN 13036 /
apt-get install php5-dev libmemcache-devPecl download memcache
tar xzvf memcache-2.2.6.tgz
cd memcache-2.2.6/
phpize && ./ configure --enable-memcache && make
cp modules/ / usr/ lib/ php5/ 20060613 /echo "extension=memcache.so" >> / etc/ php5/ apache2/ php.ini
/ etc/ init.d/ apache2 restart
- //Создаём новый объект. Также можно писать и в процедурном стиле
- = new ;
- -> connect ("127.0.0.1" , 11211 ) or die («Could not connect» ) ;
- //Попытаемся получить объект с ключом our_var
- $var_key = @ -> get ("our_var" ) ;
- if (! empty ($var_key ) )
- //Если объект закэширован, выводим его значение
- echo $var_key ;
- else
- //Если в кэше нет объекта с ключом our_var, создадим его
- //Объект our_var будет храниться 5 секунд и не будет сжат
- -> set ("our_var" , date ("G:i:s" ) , false , 5 ) ;
- //Выведем закэшированные данные
- echo -> get ("our_var" ) ;
- -> close () ;
- < ? php
- function LoadCPU()
- //Функция, которая должна зугрузить процессор
- $image = imagecreate(800 , 600 ) ;
- //Белый фоновый цвет
- $color = imagecolorallocate($image, 255 , 255 , 255 ) ;
- //Чёрный
- $color2 = imagecolorallocate($image, 0 , 0 , 0 ) ;
- for ($i = 0 ; $i < 10000 ; $i++ ) {
- imagesetpixel($image, rand (0 , 800 ) , rand (0 ,600 ) , $color2) ;
- //Выбрасываем указатель
- return $image;
- //Создаём новый объект Memcache
- = new ;
- //Соединяемся с нашим сервером
- - > connect("127.0.0.1" , 11211 ) or die("Could not connect" ) ;
- //Попытаемся получить объект с ключом image
- $image_bin = - > get("image" ) ;
- if (empty($image_bin) ) {
- //Если в кэше нет картинки, сгенерируем её и закэшируем
- imagepng(LoadCPU() ,getcwd() ."/tmp.png" ,9 ) ;
- $image_bin = file_get_contents(getcwd() ."/tmp.png" ) ;
- unlink(getcwd() ."/tmp.png" ) ;
- - > set("image" , $image_bin, false , 30 ) ;
- //Выведем картинку из кэша
- header("Content-type: image/png" ) ;
- echo $image_bin;
- //Закрываем соединение с сервером Memcached
- - > close() ;
- ? >
- function LoadCPU()
- //Функция, которая должна загрузить процессор
- //Создадим изображение 800x600
- $image = imagecreate (800 , 600 ) ;
- //Белый фоновый цвет
- $color = imagecolorallocate ($image , 255 , 255 , 255 ) ;
- //Чёрный
- $color2 = imagecolorallocate ($image , 0 , 0 , 0 ) ;
- for ($i = 0 ; $i < 10000 ; $i ++ ) {
- //Расставим 10 000 точек в случайном порядке
- imagesetpixel ($image , rand (0 , 800 ) , rand (0 , 600 ) , $color2 ) ;
- //Выбрасываем указатель
- return $image ;
- //Выводим изображение, не кэшируя
- header ("Content-type: image/png" ) ;
- imagepng (LoadCPU() , "" , 9 ) ;
addServer - в случае, если у вас в распоряжении несколько кэширующих серверов, вы можете создать некий кластер, добавляя сервера в пул. Следует обратить внимание на параметр weight
. Он указывает на то, сколько памяти вам будет доступно на конкретном сервере.
delete - из названия понятно, что данный метод удаляет из кэша объект с заданным ключом.
replace - заменяет значение объекта с заданным ключом. Используйте в случае, если Вам понадобится изменить содержимое объекта, раньше чем истечёт время его жизни.
UPD: Ещё один интересный момент. Memcached, есть PHP API к libmemcached. А Memcache, библиотека для php, не использующая libmemcached.
Данная статья носит характер «Скорой помощи». Развернутое описание конкретных действий, которые позволять установить и настроить memcached на сервере.
Начнем с определения.
Memcached - программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе хеш-таблицы.
Начальные данные:
Начнем с последнего пункта. За счет запущенного интернет-ресурса (или его подобия) мы можем просто и быстро выяснить что у нас установлено (быть может, что среди прочего мы найдем и memcached). Создадим файл с названием info.php , в котором напишем:
Выполним код, обратившись в по адресу http://example.com/info.php:
Если среди всего прочего вы отыскали похожую запись — значит все в порядке и дело уже сделано. В противном случае — этот результат мы получим по итогам действий, описанных в данной публикации.
Запустим установку командой
Apt-get install memcached php5-memcache
Ожидаем завершения установки. После проверим результаты командой netstat
В результате получаем:
Tcp 0 0 *:11211 *:* LISTEN 13053/memcached
Как мы видим, по умолчанию memcached по-умолчанию «слушает» порт 11211. Следовательно, через данный порт любой желающий сможет подключится и использовать наш memcached-сервер. Обезопасим себя, дадим такое право только своему серверу (localhost). Откроем файл /etc/memcached.conf через панель управления, либо через консоль:
Vi /etc/memcached.conf
Данный файл содержит подробные комментарии. Обязательно ознакомьтесь с ними.
Добавьте строку -l 127.0.0.1 .
Перезагружаем memcached-сервер командой:
/etc/init.d/memcached restart
И проверим еще раз:
Netstat -tap | grep memcached
В результате мы должны получить что-то вроде
Tcp 0 0 localhost.localdo:11211 *:* LISTEN 13092/memcached
Теперь memcached работает только на локальный сервер.
Перечень команд (версия memcache может отличаться!):
Apt-get install php5-dev libmemcache-dev pecl download memcache tar xzvf memcache-2.2.6.tgz cd memcache-2.2.6/ phpize && ./configure --enable-memcache && make cp modules/memcache.so /usr/lib/php5/20060613/ echo "extension=memcache.so" >> /etc/php5/apache2/php.ini
Перезагружаем Apache:
Apachectl graceful
Проверим скрипт, размещенный нами ранее по адресу http://example.com/info.php . Теперь мы должны найти там пункт Memcache.
Создадим файл result.php и запустим его.
connect("localhost", 11211) or exit("Невозможно подключиться к серверу Memcached");
$version = $memcache->getVersion();
echo "Server"s version: ".$version."
\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = "test";
$tmp_object->int_attr = 123;
$memcache->set("key", $tmp_object, false, 10) or die ("Не получилось оставить запись в Memcached");
echo "Записываем данные в кеш Memcached (данные будут храниться 10 секунд)
\n";
$get_result = $memcache->get("key");
echo "Данные, записанные в Memcached:
\n";
var_dump($get_result);
?>
Результат работы скрипта:
Server"s version: 1.4.13 Записываем данные в кеш Memcached (данные будут храниться 10 секунд) Данные, записанные в Memcached: object(stdClass)#3 (2) { ["str_attr"]=> string(4) "test" ["int_attr"]=> int(123) }
Все так или почти так? Тогда все в порядке. Если нет — попробуйте повторить процедуры.
Сегодня я представлю вам небольшой фрагмент кода, который научит вас взаимодействовать с Memcache. Для того чтобы установить Mediatemple на хостинге вам необходимы данные для SSH.
Memcache была разработана Danga Interactive для того, чтобы увеличить скорость работы портала LiveJournal.com. Memcache сводит время загрузки из базы данных практически до нуля, от чего растёт скорость загрузки страницы для пользователей, ускоренное управление ресурсами и т.д. На данный момент FaceBook является самым крупным пользователем сервиса Memcache. Учитывая количество людей прибывающих на FaceBook ежедневно, он чуть не завалил данный сервис - и для них выделили отдельное место.
Ну что, интересно стало? Memcache является универсальной системой распределения кэшированных элементов. Если в кэше ничего нет, то делается запрос к базе и результаты записываются в Memcache:
Memcache предоставляет 5 функций:
Если вы установили у себя Memcache, то вы можете начать им пользоваться. Существует мнение, что много кэша это плохо. Я с этим абсолютно не согласен! Чем быстрее грузится ваш сайт - тем лучше!
$memcache = new Memcache; $memcache->connect("127.0.0.1", 11211) or die ("Could not connect"); include("includes/connect.php"); //создать ключ, затем проверить кэш $key = md5("SELECT * FROM memcached_test where name="ashley""); $get_result = $memcache>get($key); if ($get_result) { echo $get_result["name"]; echo $get_result["username"]; echo "Data Pulled From Cache"; } else { // Получить данные из базы и создать кэш $query="SELECT * FROM memcached_test where name="ashley";"; $result = mysql_query($query); $row = mysql_fetch_array($result); print_r($row); $memcache>set($key, $row, TRUE, 20); // Хранить результат 20 секунд echo "Data Pulled from the Database"; }
Это самый простой пример использования memcache, но я надеюсь, это был хороший старт для вас.
В результате применения информации, данной в этой статье, вы сможете установить и настроить сервер Memcached и нужное расширение php для взаимодействия с ним, а также сервис анализа и статистики phpMemcachedAdmin
Установка будет происходить под Debian с сервером бекенда . Если у вас рабочая связка + php5-fpm, просто заменяйте в командах apache2 на php5-fpm
Рабочий инструментарий: файловый менеджер для подключения по со встроенным редактором или putty.
Теперь допустим, у нас на этом хостинге уже есть сайт http://example.com
Для начала, нужно определить, как сконфигурирован PHP (вдруг Memcached уже установлен?)). Для этого в корне сайта временно создадим файл info.php с кодом
Теперь заглянем в него http://example.com/info.php
Если видим, что есть похожая запись, значит, всё в порядке, нужное расширение php установлено.
Если нет, значит, придётся поработать.
Перед установкой нужно обновить репозиторий
Apt-get update && apt-get upgrade
Теперь установим memcached и модуль php под него
Apt-get install memcached php5-memcache
Идёт установка. После её завершения проверяем, что получилось
В результате мы увидим что-то навроде
Tcp 0 0 *:11211 *:* LISTEN 13053/memcached
Теперь нужно перезагрузить Apache или php-fpm
Service apache2 restart
Теперь, когда сервер установлен, его надо поднастроить. Это не сложно и не займёт много времени
Как вы видите, memcached висит на 11211 порту по умолчанию. Так как в memcached нет встроенных механизмов аутентификации, то выходит, что любой может подсоединиться извне и использовать его в своих целях. Чтобы избежать этого, вы можете либо закрыть порт 11211 с помощью фаервола, либо сконфигурировать memcached-сервер, чтобы он мог использоваться только с локального хоста. Ниже описан последний способ.
Перезагружаем memcached
Service memcached restart
/etc/init.d/memcached restart
И снова проверяем
Netstat -tap | grep memcached
В итоге мы должны увидеть подобное
Tcp 0 0 localhost.localdo:11211 *:* LISTEN 13092/memcached
Также, после всех изменений не забудьте перезапустить Apache
Service apache2 restart
По умолчанию, в Memcached отведено на использование 64 мегабайта оперативной памяти. Я увеличу до 1024, вы исходите из параметров вашего сервера
Если одним сервером или кластером Memcached пользуются несколько разных сайтов, то они могут перехватывать сессии друг друга и получать доступ к аккаунтам их пользователей, что представляет собой потенциальную опасность
Можно ускорить php, перенеся хранилище сессий из hdd в оперативную память с помощью memcached
Вы должны знать, какое расширение php вы используете, memcache или memcached . , а уточнить, что стоит у вас, можно с помощью phpinfo(), тут есть тонкость в настройках, будьте внимательны
Теперь нужно проверить, что имеем на выходе. Для этого, открываем страницу с phpinfo() и ищем в коде session.save_path в столбце с локальными значениями. В значении должно быть tcp://127.0.0.1:11211 или 127.0.0.1:11211 ..conf), а ищем
php_admin_value session.save_path
Кстати, также вы можете воспользоваться директивой php_value , чтобы настраивать не весь сервер глобально, а только конкретные сайты. Для этого, вы можете отредактировать.htaccess в корне вашего сайта
Php_value session.save_handler "memcache" php_value session.save_path "tcp://127.0.0.1:11211"
Вы также можете настроить всё под свои потребности, конфигурационный файл содержит подробные комментарии:
# memcached default config file # 2003 - Jay Bonci < > # This configuration file is read by the start-memcached script provided as # part of the Debian GNU/Linux distribution. # Run memcached as a daemon. This command is implied, and is not needed for the # daemon to run. See the README.Debian that comes with this package for more # information. -d # Log memcached"s output to /var/log/memcached logfile /var/log/memcached.log # Be verbose # -v # Be even more verbose (print client commands as well) # -vv # Start with a cap of 64 megs of memory. It"s reasonable, and the daemon default # Note that the daemon will grow to this size, but does not start out holding this much # memory # Объём памяти в мегабайтах, который отведён для кеширования. По умолчанию, 64 мегабайта. #-m 64 -m 1024 # Порт, на котором будет висеть Memcached, по умолчанию 11211 -p 11211 # Run the daemon as root. The start-memcached will default to running as root if no # -u command is present in this config file -u memcache # Specify which IP address to listen on. The default is to listen on all IP addresses # This parameter is one of the only security measures that memcached has, so make sure # it"s listening on a firewalled interface. -l 127.0.0.1 # Limit the number of simultaneous incoming connections. The daemon default is 1024 # # -c 1024 # Lock down all paged memory. Consult with the README and homepage before you do this # -k # Return error when memory is exhausted (rather than removing items) # -M # Maximize core file limit # -r
Ниже пошагово указаны команды, с помощью которых вы сможете установить php-расширение memcache из консоли вручную
Apt-get install php5-dev libmemcache-dev pecl download memcache tar xzvf memcache-2.2.6.tgz cd memcache-2.2.6/ phpize && ./configure --enable-memcache && make cp modules/memcache.so /usr/lib/php5/20060613/ echo "extension=memcache.so" >> /etc/php5/apache2/php.ini
Перезагрузим Apache, чтобы изменения вступили в силу
Service apache2 restart
Создадим в корне сайта файлик memcachetest.php и запишем туда следующий код
connect("localhost", 11211) or exit("Невозможно подключиться к серверу Memcached");
$version = $memcache->getVersion();
echo "Server"s version: ".$version."
\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = "test";
$tmp_object->int_attr = 123;
$memcache->set("key", $tmp_object, false, 10) or die ("Не получилось оставить запись в Memcached");
echo "Записываем данные в кеш Memcached (данные будут храниться 10 секунд)
\n";
$get_result = $memcache->get("key");
echo "Данные, записанные в Memcached:
\n";
var_dump($get_result);
?>
Теперь осталось проверить результаты: http://example.com/memcachetest.php
Если всё сделали правильно, увидите что-то навроде
phpMemcachedAdmin — это программное обеспечение, предоставляющее веб-интерфейс для мониторинга и управления сервисом Memcached на Linux. Позволяет видеть в реальном времени статистику для всех поддерживаемых сервером операций: get, set, delete, increment, decrement, reclaimed, evictions, cas, а также серверную статистику: сеть, позиции, рабочую версию вкупе с чартами и внутренней серверной конфигурацией.
Тут можно пойти несколькими путями: выделить отдельный домен или поддомен под работу этого сервиса. А можно сделать поддиректорию в рабочем сайте и поставить пароль на неё или . Я опишу последний способ с установкой пароля на папку как более простой.
Итак, допустим, у нас есть сайт https://сайт
Cd /var/www/сайт
Создаём директорию и переходим в неё
Mkdir phpMemcachedAdmin && cd phpMemcachedAdmin
Скачиваем последнюю версию дистрибутива
Wget http://phpmemcacheadmin.googlecode.com/files/phpMemcachedAdmin-1.2.2-r262.tar.gz
Распаковываем и удаляем архив с дистрибутивом
Tar -xvzf phpMemcachedAdmin-1.2.2-r262.tar.gz && rm -rf phpMemcachedAdmin-1.2.2-r262.tar.gz
Рекурсивно выставляем нужные права доступа в текущей директории
Find ./ -type f -exec chmod 0644 {} \; find ./ -type d -exec chmod 0755 {} \;
AuthType Basic AuthName "Private Area" AuthUserFile .htpasswd Require user memcachedmanager
Создаём.htpasswd
Htpasswd -c .htpasswd memcachedmanager
Вводите свой пароль.
На этом всё. Логин на каталог memcachedmanager , если вы не меняли его. Открываете https://сайт/phpMemcachedAdmin (домен меняете на свой), вводите логин/пароль и пользуетесь
Рекомендую ознакомиться со статьёй про memcached . В ней раскрыта общая информация о нём и некоторые тонкости работы.
На этом всё. Если что непонятно, задавайте вопросы в комментариях
Модуль Memcache предоставляет удобные процедурный и объектно-ориентированный интерфейсы к механизму кэширования memcached. Memcache это очень эффективный демон кэширования, который был специально разработан для уменьшения нагрузки на базу данных для высоконагруженных, динамичных веб-приложений.
Memcache модуль также предоставляет обработчик сессии. Более подробную информацию о Memcached можно найти на сайте memcached.org
В принципе описания установки и настройки на русском языке уже готово и с ним можно ознакомится .
Имейте ввиду сохранять в кэше можно любые типы данных: и переменные, и объекты, и массивы, НО НЕ РЕСУРСЫ!
Если какой либо объект имеет в своём составе свойство - ресурс, например соединение с базой данных, или содержит другой объект имеющий подобные свойства, то эту ситуацию нужно обрабатывать отдельно, например переопределив метод __sleep() в котором этот ресурс нужно "убить" и метод __wakeup() в котором этот ресурс нужно возродить.
На самом деле все эти методы можно подразделить на 3 группы:
Методы этой группы позволяют делать следующее:
Пара специфичных методов для инкремента и декремента целочисленных значений.
Позволяют установить значение, задать сжатие и время жизни для этого значения. Единственное различие в поведении этих методов это то, что метод Memcache::add - вернёт FALSE, если значение с таким ключём уже установлена.
bool Memcache::add
bool Memcache::set
(string $key , mixed $var [, int $flag [, int $expire ]])
Вернёт запрошенное значение или FALSE в случае неудачи, или, если значение с таким ключём ещё не установлено.
Можно передать массив ключей значений, тогда Memcache::get тоже вернёт массив, он будет содержать найденные пары ключ-значение.
Предупреждения!
Если в имени ключа присутствует обратный слэш, то результаты работы будут непредсказуемы!
Есть у Memcached и некоторые болячки: по некоторым данным, он (иногда) подвержен ошибкам переполнения буфера , который время от времени приводит к перезаписи [частичной] данных и, следовательно, делает невозможным десериализацию структур, не забудьте проверить, если в результате получения массива или объекта Memcache::get вернёт bool, dobule или long, значит что то пошло не так.
string Memcache::get
(string $key [, int &$flags ])
array Memcache::get
(array $keys [, array &$flags ])
Результат:
Array ( => 1000 => 2000)
Удалить значение из кэша.
Замечание:
Этот метод работает не всегда (Зависит от версии программного обеспечения)! в конце страницы указаны случаи когда Memcache::delete работает, а когда нет.
Что ж, из стабильных вариантов остаётся только обнулять ненужные значения:
$cache->set("three", NULL);
Один только минус - ключ в этом случае ни куда не девается
string Memcache::delete (string $key [, int $timeout = 0 ])
Перезаписать существующее значение.
Memcache::replace() должна использоваться, чтобы заменить существующее значение . В случае, если значение с таким ключом не существует, Memcache::replace() возвращает FALSE. В остальном Memcache::replace() ведет себя так же, как и Memcache::set(). Также можно использовать функцию memcache_replace()
string Memcache::replace (string $key , mixed $var [, int $flag [, int $expire ]])
Увеличивает значение указанного ключа на указанное значение. Если значение указанного ключа не числовое и не может быть конвертировано в число, то оно изменит свое значение на значение, указанное как второй параметр. Memcache::increment() не создает элемент, если он еще не существует.
Не советуют использовать Memcache::increment() cо значениями, которые были сжаты (установлены с флагом MEMCACHE_COMPRESSED), потому, что потом будут "сюрпризы", когда вы попытаетесь получить эти значения при помощи Memcache::get()
Лично я проверил и ни каких глюков не заметил:)
int Memcache::increment
Уменьшает значение указанного ключа на указанное значение. Аналогично Memcache::increment(), текущее значение элемента преобразуется в числовое и после этого уменьшается
int Memcache::decrement (string $key [, int $value = 1 ])
Memcache::flush() делает недействительными все существующие значения. Memcache::flush() на самом деле не освобождает ресурсы памяти, а только помечает все элементы как устаревшие, и занимаемая память будет доступна для использоавания новыми значениями. Также вы можете использовать функцию memcache_flush()
bool Memcache::flush (void)
Пример ниже не выведет ничего.
connect("localhost", 11211, 30); $cache->set("someOne", 111, 0, 5); $cache->set("someTwo", 222, 0, 5); $cache->set("someTree", 333, 0, 5); $cache->flush(); //Очистит кэш print_r($cache->get(array("someOne","someTwo","someTree")));
Memcache может работать, как с одним сервером, так и пулом (набором) серверов.
Если вы будете использовать только один сервер для обслуживания кэша, то для инициализации работы Вам будет достаточно создать объект кэша, и использовать метод Memcache::connect
Если вы собираетесь формировать пул серверов, то тут потребуется сначала создать объект кэша, а потом методом Memcache::addServer добавить в него требуемое количество серверов.
Устанавливает соединение с сервером Memcached. Соединение, которое было открыто с помощью Memcache::connect() будет автоматически закрыто по завершению скрипта, но Вы можете закрыть его явно используя Memcache::close(). Также вы можете использовать функцию memcache_connect ().Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
bool Memcache::connect
connect("localhost", 11211, 30);Этот метод похож на Memcache::connect() с той лишь разницей, что он устанавливает постоянное соединение. Это соединение не закрывается по окончанию выполнения скрипта и вызовом Memcache::close(). Также вы можете использовать функцию memcache_pconnect().Возвращает Memcache object в случае успешного завершения или FALSE в случае возникновения ошибки.
mixed Memcache::pconnect (string $host [, int $port [, int $timeout ]])
Закрывает соединение с сервером Memcached. Эта функция не закрывает постоянные соединения, которые закрываются только во время выключения/перезагрузки веб-сервера. Также можно использовать функцию memcache_close().
bool Memcache::close (void)
Добавляет сервер в пул соединений. Соединение, которое было открыто с помощью Memcache::addServer() будет автоматически закрыто по завершению скрипта, так же вы можете закрыть его вручную с Memcache::close(). Можно использовать функцию memcache_add_server()
При использовании Memcache::addServer (в отличие от Memcache::connect() и Memcache::PConnect()) сетевое соединение не установается, пока оно на самом деле не потребуется. Таким образом, нет накладных расходов при добавлении большого количества серверов в пул, даже если они и не потребуются вовсе.
Пул серверов обеспечивает более высокую отказоустойчивость. Любые ошибки сокетов, или ошибки Memcached на уровне сервера (кроме ошибок памяти) вызвают перераспределение ресурсов. Такие ошибки клиента, как добавление существующего ключа не вызовет сбоев.
Замечание:
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
bool Memcache::addServer (string $host [, int $port = 11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callable $failure_callback [, int $timeoutms ]]]]]]]])
Возвращает двумерный, ассоциативный массив статистики серверов. Массив ключей типа "хост:порт" сервера. Значения содержат отдельные параметры статистики. Отказавшие сервера будет иметь значение FALSE. Вы также можете использовать функцию memcache_get_extended_stats()
Замечание:
Эта функция была добавлена в Memcache в версии 2.0.0
array Memcache::getExtendedStats ([ string $type [, int $slabid [, int $limit = 100 ]]])
А теперь прикол:
Тип статистики "cachedump" был удален из Memcached по соображениям безопасности
Пример вывода информации (вызов без параметров) :
Array ( => Array ( => 5179 => 966862 => 1336505233 => 1.4.5 => 64 => 160.302880 => 483.975109 => 6 => 358080 => 13 => 15037476 => 3501979 => 46 => 11507898 => 3529578 => 0 => 0 => 0 => 76 => 0 => 0 => 0 => 0 => 0 => 0 => 0 => 1643906080 => 11298732744 => 67108864 => 1 => 0 => 4 => 0 => 3295454 => 7623 => 3501915 => 0 => 1825755) ...)
Возвращает статус сервера "онлайн/оффлайн". Можно также использовать функцию memcache_get_server_status()
Замечание:
Эта функция была добавлена в Memcache в версии 2.0.0
int Memcache::getServerStatus (string $host [, int $port = 11211 ])
Возвращает ассоциативный массив со статистикой сервера. Массив ключей соответствуют статистике параметры и значения для значения параметра. Также можно использовать функцию memcache_get_stats()
array Memcache::getStats s ([ string $type [, int $slabid [, int $limit = 100 ]]])
Возвращает строку - номер версии сервера. Также вы можете использовать функцию memcache_get_version() .
string Memcache::getVersion (void)
Обеспечивает автоматическое сжатие больших значений. Вы также можете использовать функцию memcache_set_compress_threshold()
Замечание:
Эта функция была добавлена в Memcache в версии 2.0.0
bool Memcache::setCompressThreshold (int $threshold [, float $min_savings ])
Изменяет параметры сервера прямо во время выполнения. Вы также можете использовать функцию memcache_set_server_params() .
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Замечание:
Эта функция была добавлена в Memcache в версии 2.0.0
bool Memcache::setServerParams (string $host [, int $port = 11211 [, int $timeout [, int $retry_interval = false [, bool $status [, callable $failure_callback ]]]]])