Какой лучший клиент Java memcached и почему?
Java Memcached Client
Ответ 1
Как автор spymemcached, я немного предвзятый, но я бы сказал это по следующим причинам:
Разработан с нуля, чтобы быть неблокируемым везде.
Когда вы запрашиваете данные, выдаете набор и т.д.... там одна крошечная параллельная вставка очереди, и вы получаете будущее для блокировки результатов (с некоторыми удобными методами для обычных случаев, таких как get).
Оптимизировано агрессивно
Вы можете прочитать больше на моей странице optimizations, но я делаю оптимизацию всего приложения.
Я по-прежнему хорошо разбираюсь в микро-тестах, но для сравнения с другим клиентом вам нужно улаживать нереалистичные шаблоны использования (например, ожидание ответа на каждую заданную операцию или блокировки здания вокруг позволяет им избежать делая оптимизацию пакетов).
Проверено навязчиво
Я поддерживаю довольно строгий набор тестов с отчетами о покрытии в каждом выпуске.
Ошибки все еще проскальзывают, но они обычно довольно незначительные, и клиент продолжает улучшаться.:)
Хорошо документировано
Страница examples содержит краткое введение, но javadoc идет в огромные подробности.
Предоставляет абстракции высокого уровня
У меня есть интерфейс Map к кешу, а также функциональная абстракция CAS. Оба бинарных и текстовых поддерживают механизм incr-with-default (предоставляемый двоичным протоколом, но довольно сложный в тексте).
Сохраняет характеристики
Я выполняю много работы на самом сервере, поэтому я не отстаю от изменений протокола.
Я сделал первые реализации сервера бинарного протокола (как тестовый сервер, так и сам memcached), и это был первый готовый к производству клиент для его поддержки и делает это первоклассным.
У меня также есть поддержка нескольких алгоритмов хеширования и алгоритмов распределения node, все из которых хорошо протестированы для каждой сборки. Вы можете сделать хэш-код с запасом кетама, или производную, использующую FNV-1 (или даже собственное хеширование строки java), если вы хотите повысить производительность.
Ответ 2
Я считаю, что клиент imap с memcached - лучший клиент.
Функции
- Поддержка двоичных протоколов. самый быстрый способ доступа к ключу/значению, хранящемуся на сервере memcached.
- Поддержка протокола UDP. Вы можете установить ключ с протоколом tcp и получить протокол udp. На самом деле, некоторые крупные корпорации делают это.
- Поддержка настраиваемой сериализации и десериализации.
- Пул соединений с NIO и прямым буфером. Динамически увеличивайте соединения, когда они не используются для пула соединений.
Производительность
- Обратитесь к performance для тестового теста существующих популярных Java-клиентов memcached.
- Дессериализация при получении ответа
- Настройка производительности в каждой строке исходного кода.
Ответ 3
Если эти числа все еще действительны, то... http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html
Ответ 4
Примерно год назад, когда мне приходилось использовать java-клиент memcached, соединитель spymemcached был описан как оптимизированный API с большим количеством функций. С тех пор появилось несколько новых выпусков клиента memcached, поэтому, возможно, стоит проверить.
FWIW клиент-шпион отлично работал у меня.
Ответ 5
Я использую SpyMemcached и должен согласиться с тем, что он является лучшим из доступных там, с множеством новых улучшений.
Ответ 6
Существует клиент memcached для Java и spymemcached. Не так много опыта с этим.
Ответ 7
Попробуйте xmemcached, он также основан на nio и обладает некоторыми мощными функциями.