Производительность MemcachedClient с использованием метода get

У меня есть значение в memcached, например, 500 000. Когда я пытаюсь получить определенное значение с помощью его ключа и используя метод get. Это занимает случайное время, например, 20 мс, 5 мс и так далее. Иногда около 500 мс.

Memcached это очень медленно? Или есть ли способ улучшить его производительность? Я проверяю время следующим образом. Я напечатал системное время в мс перед извлечением значения и после извлечения значения.

 System.currentTimeMillis();
 memcachedClient.get("key");
 System.currentTimeMillis(); 

Если я установлю некоторые значения в memcached и попытаюсь получить значение из них за один раз. тогда я буду получать больше времени. Но если я буду выполнять эти задачи отдельно, у меня будет меньше времени для получения. Зачем?

1 ответ

Нет, это не так медленно. Это зависит только от того, как настроена ваша система.

Первый вопрос: где твой memcached? Это локальный memcached (на той же машине, где вы выполняли этот код Java) или удаленный memcached? Если он удаленный, то вам нужно знать, какова задержка между вашим устройством и удаленным (хотя 500 мс это много). Кроме того, что еще работает на поле, на котором вы выполняете Java, и что еще работает на поле, на котором работает memcached?

Memcached работает быстро, так что это проблема с вашей конфигурацией... Вам нужно изучить и предоставить гораздо больше информации, если вы хотите, чтобы мы вам помогли.

Кроме того, когда вы используете внешнюю библиотеку (spymemcached здесь), укажите ее версию (я полагаю, 2.8.12). Иногда есть известные проблемы с конкретной версией (но это не будет иметь место здесь).

Другие вопросы по тегам