Memcached

Удобное распределенное хранилище данных типа «ключ-значение» в памяти для использования в качестве высокопроизводительного кэша или хранилища сессий.

Что такое Memcached?

Memcached – это удобное высокопроизводительное хранилище данных в памяти. Продуманное масштабируемое решение с открытым исходным кодом обеспечивает время отклика на уровне долей миллисекунды, что позволяет использовать его в качестве кэша или хранилища сессий. Memcached широко применяется для поддержки рекламных технологий, площадок интернет-коммерции, игровых, мобильных и интернет-приложений, а также других приложений, работающих в режиме реального времени.

Что такое Memcached?

Как работает Memcached?

В отличие от баз данных, хранящих данные на дисках или твердотельных накопителях, Memcached сохраняет данные в оперативной памяти. Поскольку Memcached, как и другие хранилища данных типа «ключ-значение» в памяти, не нуждается в доступе к диску, это исключает задержки, связанные с поиском, и обеспечивает доступ к данным за микросекунды. Кроме того, хранилище Memcached является распределенным, поэтому его можно просто масштабировать путем добавления новых узлов. Многопоточность Memcached позволяет быстро наращивать вычислительную мощность. Благодаря высокой скорости, масштабируемости, простоте, эффективности управления памятью и поддержке API для большинства распространенных языков программирования Memcached широко применяется для создания масштабного кэша с высокой производительностью.

Преимущества Memcached

Все данные Memcached хранятся в основной памяти сервера. В отличие от баз данных (таких как PostgreSQL, Cassandra и MongoDB, в которых данные хранятся преимущественно на дисках или твердотельных накопителях), хранилища данных в памяти не совершают постоянных циклических обращений к диску. Благодаря этому многократно увеличивается количество выполняемых операций и сокращается время отклика. Это обеспечивает исключительное быстродействие: время чтения и записи измеряется долями миллисекунды, и хранилище может выполнять миллионы операций в секунду.

Простота и универсальность делают Memcached мощным и очень удобным решением для разработки приложений. При работе с Memcached разработчики получают в распоряжение множество готовых клиентов с открытым исходным кодом. Поддерживаемые языки программирования включают Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, Go и многие другие.

Распределенная многопоточная архитектура упрощает масштабирование Memcached. Данные можно распределить между несколькими узлами, что позволяет наращивать ресурсы путем добавления в кластер новых узлов. Благодаря многопоточности Memcached также может использовать несколько ядер в одном узле. Это позволяет просто наращивать вычислительную мощность. С помощью Memcached можно создавать высокомасштабируемые распределенные решения для кэширования, обеспечивающие стабильную высокую производительность.

Memcached – качественный проект с открытым исходным кодом и активным сообществом поддержки. Использование Memcached для повышения производительности поддерживается в таких приложениях, как WordPress и Django. Поскольку Memcached базируется на открытых стандартах, поддерживает открытые форматы данных и имеет множество клиентов, это исключает привязку к определенному поставщику или технологии.

Примеры использования

Кэширование

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

Хранилище сессий

Многие разработчики используют Memcached как хранилище данных в памяти и средство управления данными для сессий приложений, работающих в масштабе Интернета, которым не требуется постоянное хранение. Memcached обеспечивает задержку на уровне долей миллисекунды и поддерживает работу в масштабах, необходимых для управления такими данными сессий, как профили пользователей, учетные данные и состояние сессий.

Поддержка различных языков

Memcached поддерживает большинство ведущих языков программирования и протоколов, в том числе перечисленные ниже.

Python

Java

PHP

C/C#/C++

Perl

Go

Ruby

JavaScript

Node.js

Протокол ASCII

Протокол передачи двоичных данных

Протоколы TCP и UDP

Сравнение Redis и Memcached

Redis и Memcached – это два наиболее популярных хранилища данных типа «ключ-значение» в памяти. Memcached отличает простота, а Redis обладает широкими функциональными возможностями, которые позволяют эффективно использовать хранилище для разнообразных целей. Чтобы определить, какое решение лучше подходит в конкретном случае, необходимо понимать, чем отличаются эти два сервиса. Подробнее о сравнении Redis и Memcached

Полностью управляемый сервис Memcached на AWS

Amazon предлагает полностью управляемый сервис Memcached – Amazon ElastiCache для Memcached.

  • Простота настройки, использования и масштабирования развертываний Memcached в облаке. Автоматическое обнаружение и замена отказавших узлов.
  • Недорогие аппаратные ресурсы с возможностью масштабирования.
  • Использование клиента ElastiCache для кластера Memcached с возможностью Auto Discovery для ускорения разработки приложений благодаря упрощенному управлению узлами.