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