Memcached
- Введение
- Установка и настройка
- Предопределенные константы
- Время хранения объекта
- Callbacks
- Sessions support
- Memcached — The Memcached class
- Memcached::add — Добавляет элемент с новым ключом
- Memcached::addByKey — Добавляет новый элемент на заданный сервер
- Memcached::addServer — Добавляет сервер в пул
- Memcached::addServers — Добавляет несколько серверов в пул
- Memcached::append — Добавляет данные к существующей записи
- Memcached::appendByKey — Добавляет данные к существующей записи на заданном сервере.
- Memcached::cas — Сравнивает и устанавливает значение для записи
- Memcached::casByKey — Сравнивает и устанавливает значение для записи на конкретном сервере
- Memcached::__construct — Создает экземпляр класса Memcached
- Memcached::decrement — Уменьшает числовое значение записи
- Memcached::decrementByKey — Уменьшает числовое значение записи, хранящееся на определенном сервере
- Memcached::delete — Удаляет запись
- Memcached::deleteByKey — Удаляет запись с указанного сервера
- Memcached::deleteMulti — Удаляет несколько записей
- Memcached::deleteMultiByKey — Удаляет несколько записей с указанного сервера
- Memcached::fetch — Извлекает следующий результат
- Memcached::fetchAll — Извлекает все полученные записи
- Memcached::flush — Аннулирует все записи в кеше
- Memcached::get — Получение записи
- Memcached::getAllKeys — Получает все ключи, хранящиеся на серверах
- Memcached::getByKey — Получает запись с определенного сервера
- Memcached::getDelayed — Запрашивает несколько записей
- Memcached::getDelayedByKey — Запрашивает несколько записей с указанного сервера
- Memcached::getMulti — Получает несколько записей
- Memcached::getMultiByKey — Получает несколько записей с указанного сервера
- Memcached::getOption — Получает значение Memcached параметра
- Memcached::getResultCode — Возвращает результирующий код последней выполненной операции
- Memcached::getResultMessage — Возвращает сообщение, описывающее результат выполнения последней операции
- Memcached::getServerByKey — Получает информацию о сервере по ключу
- Memcached::getServerList — Получает список серверов в пуле
- Memcached::getStats — Получает статистику о серверах в пуле
- Memcached::getVersion — Получает информацию о версии серверов в пуле
- Memcached::increment — Увеличивает числовое значение записи
- Memcached::incrementByKey — Увеличивает числовое значение записи, хранимой на указанном сервере
- Memcached::isPersistent — Проверяет используется ли устойчивое соединение с сервером memcache
- Memcached::isPristine — Проверяет создан ли уже экземпляр класса Memcached
- Memcached::prepend — Добавляет данные в начало существующей записи
- Memcached::prependByKey — Добавляет данные в начало существующей записи на указанном сервере
- Memcached::quit — Закрывает все открытые соединения
- Memcached::replace — Заменяет существующую запись с указанным ключом
- Memcached::replaceByKey — Заменяет существующую запись с заданным ключом на указанном сервере
- Memcached::resetServerList — Очищает список серверов
- Memcached::set — Сохраняет запись
- Memcached::setByKey — Сохраняет запись на указанном сервере
- Memcached::setMulti — Сохраняет несколько записей
- Memcached::setMultiByKey — Сохраняет несколько записей на указанном сервере.
- Memcached::setOption — Устанавливает значение параметра для Memcached
- Memcached::setOptions — Устанавливает несколько Memcached параметров
- Memcached::setSaslAuthData — Устанавливает учетные данные для аутентификации
- Memcached::touch — Устанавливает новый срок хранения для записи
- Memcached::touchByKey — Устанавливает новый срок хранения для записи на указанном сервере
- MemcachedException — The MemcachedException class
- Constant hash database
- Клиентская библиотека работы с URL
- Event
- File Alteration Monitor
- FTP
- Gearman
- Net Gopher
- Gupnp
- Hyperwave API
- Облегчённый протокол доступа к каталогам (LDAP)
- Memcache
- Memcached
- mqseries
- Network
- RRDtool
- Simple Asynchronous Messaging
- SNMP
- Сокеты
- Secure Shell2
- Stomp Client
- Support Vector Machine
- Subversion
- TCP Wrappers
- Varnish
- YAZ
- YP/NIS
- ZMQ
Коментарии
For those confuse about the memcached extension and the memcache extension, the short story is that both of them are clients of memcached server, and the memcached extension offer more features than the memcache extension.
The module also supports SASL authentication, it just isn't documented sadly. You'll need to run the following code:
<?php
$m = new Memcached();
$m->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
$m->setSaslAuthData("user-1", "pass");
?>
You need to enable the "memcached.use_sasl = 1" ini option for memcached in the php.ini file.
GOTCHA: Recently I was tasked with moving from PECL memcache to PECL memcached and ran into a major problem -- memcache and memcached serialize data differently, meaning that data written with one library can't necessarily be read with the other library.
For example, If you write an object or an array with memcache, it's interpreted as an integer by memcached. If you write it with memcached, it's interpreted as a string by memcache.
tl;dr - You can't safely switch between memcache and memcached without a either a cache flush or isolated cache environments.
<?php
$memcache = new Memcache;
$memcacheD = new Memcached;
$memcache->addServer($host);
$memcacheD->addServers($servers);
$checks = array(
123,
4542.32,
'a string',
true,
array(123, 'string'),
(object)array('key1' => 'value1'),
);
foreach ($checks as $i => $value) {
print "Checking WRITE with Memcache\n";
$key = 'cachetest' . $i;
$memcache->set($key, $value);
usleep(100);
$val = $memcache->get($key);
$valD = $memcacheD->get($key);
if ($val !== $valD) {
print "Not compatible!";
var_dump(compact('val', 'valD'));
}
print "Checking WRITE with MemcacheD\n";
$key = 'cachetest' . $i;
$memcacheD->set($key, $value);
usleep(100);
$val = $memcache->get($key);
$valD = $memcacheD->get($key);
if ($val !== $valD) {
print "Not compatible!";
var_dump(compact('val', 'valD'));
}
}
## Installing Memcached on Ubuntu
To install Memcached on Ubuntu, go to terminal and type the following commands −
$sudo apt-get update
$sudo apt-get install memcached
## Confirming Memcached Installation
To confirm if Memcached is installed or not, you need to run the command given below. This command shows that Memcached is running on the default port 11211.
$ps aux | grep memcached
To run Memcached server on a different port, execute the command given below. This command starts the server on the TCP port 11111 and listens on the UDP port 11111 as a daemon process.
$memcached -p 11111 -U 11111 -u user -d
You can run multiple instances of Memcached server through a single installation.