Java [закрытый] клиент Memcached

Я понял!

Мне нужно было установить атрибуты как JSONField.

Мое решение:

class CarSerializer(serializers.ModelSerializer):

    attributes = serializers.JSONField()

    class Meta:
        model = Car
        fields = "__all__"
52
задан Michael Myers 9 April 2009 в 04:30
поделиться

7 ответов

Как автор spymemcached , я немного предвзят, но я бы сказал, что он принадлежит мне по следующим причинам:

Разработан с нуля, чтобы везде, где это возможно, неблокировать.

Когда вы запрашиваете данные, выдаете набор и т. Д., Есть одна крошечная параллельная вставка в очередь, и вы получаете Future для блокировки результатов (с некоторыми удобными методами для общих случаев, такими как get).

Оптимизировано агрессивно

Вы можете прочитать больше на моей странице оптимизации , но я занимаюсь оптимизацией всего приложения.

Я по-прежнему неплохо справляюсь с микротестами, но для справедливого сравнения с другим клиентом вам нужно изобретать нереалистичные шаблоны использования (например, ожидание ответа на каждую установленную операцию или построение блокировок вокруг, чтобы удержать их от делаем оптимизацию пакетов).

Одержимо тестировалось

Я поддерживаю довольно строгий набор тестов с отчетами о покрытии в каждом выпуске.

Ошибки все еще появляются, но обычно они довольно незначительны, и клиент продолжает улучшаться. :)

Хорошо документировано

Страница примеров дает краткое введение, но javadoc содержит огромные детали.

Предоставляет высокоуровневые абстракции

У меня есть интерфейс Map для кеша, а также функциональная абстракция CAS. И двоичный, и текстовый формат поддерживают механизм incr-with-default (предоставляемый двоичным протоколом, но довольно сложный для текста).

Идет в ногу со спецификациями

Я выполняю много работы над самим сервером, поэтому я не отставал от изменений протокола.

Я сделал первые реализации сервера бинарного протокола (как тестовый сервер, так и в самом memcached), и это был первый готовый к работе клиент, который его поддерживал, и делает это первоклассно.

У меня также есть поддержка нескольких алгоритмов хеширования и алгоритмов распределения узлов, каждый из которых хорошо протестирован для каждой сборки. Вы можете сделать стандартный хеш-код кетамы или его производную с использованием FNV-1 (или даже собственного хеширования строк java), если вам нужна лучшая производительность.

56
ответ дан Dustin 7 November 2019 в 09:29
поделиться

Примерно год назад, когда мне приходилось использовать Java-клиент memcached, коннектор spymemcached был описан как оптимизированный API с большим количеством функций. С тех пор появилось несколько новых выпусков клиента memcached, поэтому, возможно, стоит проверить.

FWIW шпионский клиент отлично сработал для меня.

4
ответ дан Steve B. 7 November 2019 в 09:29
поделиться

Имеется клиент memcached для Java и spymemcached . Хотя и с ними не так много опыта.

1
ответ дан cletus 7 November 2019 в 09:29
поделиться

Я использовал SpyMemcached и должен согласиться, что это лучший из имеющихся, с множеством новых улучшений.

2
ответ дан 7 November 2019 в 09:29
поделиться

Попробуйте xmemcached , он также основан на nio и обладает некоторыми мощными функциями.

1
ответ дан 7 November 2019 в 09:29
поделиться

Я считаю java-клиент memcached лучшим клиентом.

Характеристики

  • Поддержка двоичного протокола . самый быстрый способ получить доступ к ключу / значению, хранящемуся на сервере memcached.
  • Поддержка протокола UDP . Вы можете установить ключ с протоколом tcp и получить с протоколом udp. Фактически, некоторые крупные корпорации поступают так.
  • Поддержка настраиваемой сериализации и десериализации.
  • Пул соединений с NIO и прямым буфером. Динамически увеличивайте количество подключений, когда они не используются для пула подключений.

Производительность

  • Обратитесь к производительности для эталонного теста существующих популярных клиентов memcached java.
  • Десериализация при получении ответа
  • Настройка производительности каждой строки исходного кода.
5
ответ дан 7 November 2019 в 09:29
поделиться

Если эти номера все еще действительны, то ... http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html

5
ответ дан 7 November 2019 в 09:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: