Недокументированный Memcached-2
У модуля Мемкешед для ПХП удивительно плохо с документацией, я иногда заглядываю в его исходники, с целью почитать. Недавно наткнулся на очередную опцию, описания которой в документации нет (причём в документации аналогичного модуля для Пайтона она есть).
Оказываются UDP не единственный способ ускорить работу с Мемкешед, если вам скорость важнее результата операции. Способ хорош тем, что используется протокол TCP (т. е. с гарантированной доставкой), но мы не ждём — нам главное, что
Посмотрите на пример и обратите внимание на опцию OPT_NOREPLY.
$m = new Memcached;
$m->addServer(0, 11211);
$val = str_repeat(file_get_contents('/etc/passwd'), 200);
$m->set('key', $val);
$m->setOption(Memcached::OPT_NOREPLY, true);
$m->setOption(Memcached::OPT_COMPRESSION, false);
$time = microtime(true);
$m->append('key', $val);
echo number_format(microtime(true) - $time, 4, ',', ''), "\n";Кстати, такое большое (как в примере) значение мне потом обратно прочитать не удалось, видимо превысил
Интересно, что можно делать несколько операций append подряд, очерёдность их сохраняется, корректность прочитанного — тоже. Вот только непонятно не может ли чтение получить данные между двумя append, скорее всего — может, но этот способ как раз для случаев, когда на первом месте скорость записи к кеш.
Комментарии 5
А в Сети разве нельзя найти более подробное описание/документацию, если в hard copy инструкции ничего не сказано об ограничениях?
Влад Никольский
Новороссийск
Честно говоря, я не особый специалист, а просто интересующийся. Учусь на том, что нахожу в Сети.
Прошу прощенья, получается новый коммент. Не нашёл ссылку как ответить на ваш коммент.
Влад Никольский
Новороссийск
Это и есть способ ответить на коммент.