DEV Community

faangmaster
faangmaster

Posted on • Edited on

4

Memcached vs Redis

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

Memcached

Memcached был создан в 2003 году. Это распределённый кэш, который хранит данные в виде пар ключ-значение. И ключ, и значение представлены строками, поэтому все данные перед сохранением должны быть сериализованы в строки.
У Memcached есть клиент и серверная часть. Все сервера используют shared-nothing архитектуру. Сервера не знают друг о друге. Они не взаимодействуют друг с другом, не шарят данные и не синхронизуются.
Благодаря такому дизайну, Memcached позволяет достич гигантской производительности и низкой задержки. Он может обрабатывать миллионы запросов в секунду. Благодаря такой архитектуре Memcached хорошо масштабируется горизонтально.
Image description

Memcached в Facebook

Facebook является одним из самых масштабных примеров использования Memcached. Memcached был создан в 2003 году, а Facebook — в 2004 (Redis был создан в 2009 году). Memcached прост в использовании, хорошо масштабируется горизонтально и стал очевидным выбором в качестве распределённого кэша.
Примеры команд Memcached:

get <key_1> <key_2> <key_3> ...
set <key> <value> ...
delete <key>
Enter fullscreen mode Exit fullscreen mode

По состоянию на 2013 год Facebook использовал более 800 серверов с 28 терабайтами RAM. На данный момент эти числа сильно больше. Он находится между web частью и MySQL базой. Facebook на тот момент удалось достичь 95% cache hit rate.
Презентацию можно посмотреть тут: Facebook and memcached - Tech Talk
High-level дизайн кэширования в Facebook выглядит следующим образом:

Image description

Из 50M запросов от web layer, только 2.5M достигают базы, остальные обрабатываются кэшем.

Redis

Redis это больше чем просто распределенный in-memory cache. Он может использоваться как cache, in-memory key-value база данных и message broker. В отличие от Memcached, Redis позволяет хранить различные структуры данных, а не только строки (list, set, hash map и т.д.).

В Redis существует два способа персистинга данных на диск:

  • Redis RDB Dump. Периодически, через равные промежутки времени, делается снапшот данных на диск в виде бинарного файла формата Redis RDB Dump.

  • AOF (Append only file). Все операции по изменению данных логируются в файл (append-only file) в бэкграунд процессе.

Статья дополняется. Статья будет дополнена описанием Redis по сравнению в Memcached.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up