Недокументированные возможности модулья Memcached (для PHP)

Читая на досуге исходники модуля Memcached для ПХП, наткнулся на неожиданное: оказывается этот модуль поддерживает соединение по протоколу UDP, причём документация молчит об этом.

Делается это вот так:
$udp = new Memcached();
$udp->setOption(Memcached::OPT_USE_UDP, true);
$udp->addServer($host, $port);
В частности, это позволит нам перейти на multi-UDP схему, если добавить разные порты как несколько серверов. Надо пробовать.

Другая вещь, которая никак не раскрывается документацией — пользовательские флаги (UDF — user defined flag). К каждому значению можно прикрепить один или несколько флагов, которые при получении значения будут складываться в заданную переменную:
const FLAG = 1;
const ANOTHER_FLAG = 2;

$m->set($key, 'value', 0, FLAG | ANOTHER_FLAG); // установили флаг
$m->get($key, null, null, $flags); // флаги будут лежать в переменной $flags
У каждой функции установки и получения значений (а их несколько, этих функций) в конце есть необязательный параметр для работы с флагами. Так что во всех вариантах использования значения можно как-то пометить, а потом эти пометки получить.

Позднее дополнение: похоже memcached больше не нуждается в multiport UDP patch, он и без него теперь с UDP работает нормально.
27 августа 2014 15:13

daedmen (инкогнито)
27 августа 2014, 15:54

Надо бы баг зарепортить

Евгений Степанищев (bolknote.ru)
27 августа 2014, 17:47, ответ предназначен daedmen

Какой? Чтобы доку обновили?

Refaim (инкогнито)
28 августа 2014, 01:54

поддерживает соединение по протоколу UPD
Опечатка в названии протокола :)

Евгений Степанищев (bolknote.ru)
28 августа 2014, 06:39, ответ предназначен Refaim

Спасибо, поправил!

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)