Я постараюсь рассмотреть здесь как можно больше вещей.
Spymemcached позволяет массово получать, но не массово получать CAS или добавлять;функции, которые, я думаю, будут широко использоваться, если они будут реализованы.
Я полностью согласен с этим, но мы, вероятно, не пойдем на это, добавив функции bulkAdd, bulkCas, ... в MemcachedClient.Spymemcached в настоящее время по умолчанию оптимизирует операции получения и установки, отправляя их как массовые наборы или массовые загрузки, когда это возможно.Есть планы распространить это на все операции memcached, но это еще не сделано.Хотя, когда это произойдет, это произойдет за кулисами и, вероятно, не будет напрямую доступно для пользователей с spymemcached.
Блокирующий вызов Future.get () кажется крайне неэффективным?
Да, чтоЯ расскажу ниже, но также учтите, что если бы это была массовая операция, то ваш код все равно немного блокировался бы.С отдельными операциями добавления ваш код, вероятно, будет блокироваться только для первой операции, потому что после этого все остальные операции будут уже завершены, поэтому вызовы Future.get () после первого вызова немедленно вернутся.
есть лучший способ?
Вы можете расширить класс MemcachedClient и скопировать одну из существующих функций и добавить свой собственный код в функцию обратного вызова.
Также возможны следующие операции (или планированиедолжно быть реализовано)?
Spymemcached реализует все функциональные возможности, которые предлагает memcached.Упомянутые вами операции уже могут быть построены с функциональностью, которую имеет Spymemcached.
-Добавить или вернуть существующее значение
add keyA.В случае неудачи get keyA.
-Удалить, если значение равно известному значению
get keyA.Если keyA равно известному значению, удалить keyA
- Установить, если значение равно известному значению
get keyA.Если keyA равно известному значению, установите keyB.
Если вы хотите добавить новые опции в memcached, то вы должны опубликовать свои запросы на memcached.org.Честно говоря, парни из memcached любят держать API как можно меньше, поэтому я не думаю, что они будут добавлены.