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.

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay