Ответ 1
Библиотека Memcached client была недавно выпущена как стабильная. Он используется digg (разработан для digg Андрея Змиевского, теперь уже не с digg) и реализует гораздо больше memcached протокол, чем предыдущий клиент memcache. Наиболее важные функции, которые были memcached:
- Кассовые символы. Это облегчило мою жизнь и является легкой профилактической системой для устаревших данных. Всякий раз, когда вы извлекаете что-то из кеша, вы можете получить с ним токен (двойной номер). Вы можете использовать этот токен для сохранения обновленного объекта. Если никто еще не обновил значение во время работы потока, обмен будет успешным. В противном случае был создан новый токен, и вы вынуждены перезагрузить данные и снова сохранить их с новым токеном.
- Прочитайте callbacks - лучшая вещь, поскольку нарезанный хлеб. Это упростило мою часть кода.
- getDelayed() - приятная функция, которая может сократить время, в течение которого ваш script должен ждать, пока результаты вернутся с сервера.
- Хотя сервер memcached должен быть очень стабильным, он не самый быстрый. Вы можете использовать двоичный протокол вместо ASCII с более новым клиентом.
- Всякий раз, когда вы сохраняете сложные данные в memcached, клиент всегда делает сериализацию значения (которое медленное), но теперь с memcached-клиентом у вас есть возможность использовать igbinary. До сих пор у меня не было возможности проверить, насколько сильно это может быть достигнуто.
Все эти моменты были достаточными для того, чтобы я переключился на нового клиента и могу сказать, что он работает как шарм. Существует внешняя зависимость от библиотеки libmemcached, но ей удалось установить ее, тем не менее, на Ubuntu и Mac OSX, поэтому проблем до сих пор нет.
Если вы решите обновиться до новой библиотеки, я предлагаю вам обновить последнюю версию сервера, а также иметь некоторые интересные функции. Вам нужно будет установить libevent для его компиляции, но на Ubuntu это было не так много.
Я не видел, чтобы какие-либо фреймворки забирали новый memcached-клиент до сих пор (хотя я их не отслеживаю), но я предполагаю Zend скоро появится на борту.
UPDATE
Zend Framework 2 имеет адаптер для Memcached, который можно найти здесь