Spring ehcache против Memcached?
Я работал над весенним выпуском с помощью ehcache . Для меня это как то же самое с разным набором API и их реализацией.
В чем разница между функциями, предоставляемыми между ними, кроме API/ реализации?
Обновление:- Я уже видел Hibernate EHCache против MemCache, но этот вопрос в основном с точки зрения гибернации, но мой вопрос в целом для любой службы кэширования. В ответе на этот вопрос также говорится, что нет особой разницы с точки зрения возможностей
1 ответ
Помимо различий в API, которые вы заметили, основное отличие здесь заключается в том, что memcached живет в другом процессе, в то время как Ehcache является внутренним для JVM - если только он не настроен для хранения на диске или в кластере.
В основном это означает, что с Memcached вам всегда нужна сериализованная версия ваших объектов, и вы всегда взаимодействуете с другим процессом, удаленным или нет.
Ehcache и другие решения для кэширования, основанные на JVM, изначально начинаются с кэша на основе кучи, который позволяет просто выполнять поиск ссылок на ваши объекты Java.
Конечно, это означает, что объекты продолжают жить в куче Java, увеличивая нагрузку на память. В случае Ehcache 3.x у вас есть возможность перейти к памяти вне памяти и многим другим, что позволит увеличить кэш, не влияя на кучу JVM.
На этом этапе преимущество Memcached может заключаться в том, что вы хотите, чтобы не Java-клиенты имели к нему доступ.
И окончательное решение действительно в ваших руках. Кэши потребляют память для снижения задержки. То, что работает для вас, может отличаться от того, что работает для других. Вы должны измерить и решить.