Когда стоит использовать Redis а когда Memcached. Плюсы и минусы данных решений в этом видео. Оба эти решения key-value (NoSQL) хранилища в оперативной памяти.
В этом видео поговорим в чем же разница и что же выбрать ?
Как Redis хранит данные ?
Redis имеет 5 типов данных
String текстовые значения
Hash хэш-таблица строковых ключей и значений
List список строковых значений
Set не повторяющийся список строковых значений
Sorted Set отсортированный Set
Redis поддерживает операции с типами данных
Redis размер key Redis до 512 MB, value если List Set то более
Как Memcached хранит данные ?
У Memcached нет типов данных. Он хранит строки с ключами.
За счет этого используется меньше служебной памяти
Размер key 250 B размер value до 1 MB
У Memcached нет типов данных. Он хранит строки с ключами.
За счет этого используется меньше служебной памяти
Размер key 250 B размер value до 1 MB
Cпособность маштабироваться
Redis (однопоточный)- горизонтальное, master-slave
Недостатки - сложность поддержки
Memcached (многопоточный)- хорошо масштабируется вертикально, больше памяти, больше ядер.
Горизонтальное масштабирование тоже возможно но на клиентской части т. e. программа сама должна управлять на какую машину отправить или получить данные.
Еще более сложное решение чем для Redis
Основное различие
Data persistence или сохранность данных
Memcached - нам не нужно хранить большие объемы данных для одного ключа, сохранность данных для нас не важна. Размера современной оперативной памяти вам хватает с головой 256 GB.
более компактно использует память
многопоточный, максимально эффективно использует ваши 32 ядра
практически не нужно настраивать
Классическая задача - кэширование данных
Memcached - не гарантирует что данные будут доступны (перетерли место кончилось, перезапуск системы)
Redis - имеет возможность периодически скидывать данные на диск. Это не гарантирует 100% доступности но существенно ее повышает
Redis - если ваши данные имеют определенную структуру, сохранность имеет значение, возможно горизонтальное масштабирование
27 авг 2024