Redis по сравнению с кэш-памятью

Это - возврат каретки (\r, Код ASCII 13) сопровождаемый Переводом строки (\n, Код ASCII 10).

7
задан 18 December 2012 в 01:35
2 ответа

На самом деле между ними есть одно ключевое различие.

  • Redis = Кэширование ключей / значений
  • Memcached = Кэширование объектов

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

Как вы отметили, Redis на самом деле предназначен только для кэширования ключей и значений, однако раньше я видел целые объекты, сохраненные. Тем не менее, он хорошо подходит для повышения производительности базы данных.

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

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

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

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

2
ответ дан 2 December 2019 в 23:24

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

Способы кэширования Memcached и Redis похожи

Оба способны кэшировать результаты базы данных или что-либо еще, что вы захотите кэшировать.

Оба способа способны хранить простые строковые значения для ключа. Предыдущий ответ гласил, что memcached более гибкий, и это ложь. Хранение в memcached "чего бы вы ни захотели" подразумевает взятие объектов и их сериализацию/марганизацию в строки. Redis одинаково хорошо это поддерживает. Redis обычно более гибкий даже при хранении ваших объектов в последовательной памяти, так как по умолчанию максимальный размер значений намного больше (1МБ против 512МБ).

Оба хранилища значений в памяти и очень быстры и эффективны, часто срываясь на пропускную способность сети или ввода-вывода в память без интенсивного использования процессора. Оба они обладают высокой масштабируемостью. Для обоих существуют отличные инструменты управления и мониторинга. Для обоих существуют коммерческие кластерные решения. Начиная с 3.0, redis включает в себя встроенную поддержку кластеризации, которую не предлагает memcached.

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

Redis Superset

Где они отличаются, так это большим количеством дополнительных возможностей, которые предлагает redis, и дополнительные кейсы использования, которые эти возможности включают.

Redis - это нечто большее, чем просто хранилище ключей/ценностей. Это сервер структуры данных в памяти. Ключам могут быть назначены простые строки, как в memcached, но они также могут хранить Hashes, Lists, Sets, или Sorted Sets. Эти дополнительные типы данных эффективны и оптимизированы с помощью множества команд для их использования , что позволяет использовать шаблоны доступа, которые не предлагает простое хранилище ключей/значений.

Redis предлагает persistence, встроенное и включенное по умолчанию. Это означает, что redis по умолчанию является реальной базой данных, а не простым переменным кэшем, как memcached. Ваши данные будут там, когда вы перезагрузитесь. Есть много простых опций администрирования, которые вы можете использовать, чтобы настроить persistence, чтобы наилучшим образом решить вашу проблему использования, или выключить его, если все, что вам нужно - это нестабильный кэш.

Redis предлагает pub/sub (Публикация/Подписка). Это позволяет вам создавать каналы и подписывать на них одного или нескольких клиентов, что обеспечивает эффективный высокоскоростной механизм связи в реальном времени. Это может быть отличным решением для межпроцессного, межприкладного или межсерверного взаимодействия.

Redis предлагает поддержку Lua-скриптинга. Это позволяет делать всевозможные новые вещи. Одним из важных примеров может быть выполнение нескольких зависимых команд redis атоматически и с помощью одного вызова redis. Скриптинг на Lua легко подхватывается и скрипты выполняются эффективно и атоматически.

Заключение

Если ваш проект уже использует memcached или если ваша организация не имеет значительных вложений в memcached, то вы не должны его использовать. Redis конкурирует с memcached в своей собственной игре, и позволяет создать целый мир новых. Даже если ваша проблема может быть решена в равной степени с помощью обоих инструментов, используйте инструмент, который обеспечивает большую гибкость в решении проблем, которые вы еще не можете предвидеть: redis. Вы также будете выбирать инструмент, который более активно разрабатывается и поддерживается, и который быстрее совершенствуется. Мемкэш никуда не денется и не должен деняться, но трудно привести доводы в пользу его использования во что-либо новом, если только вы не обладаете значительными знаниями или инфраструктурными вложениями в мемкэш.

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

.
11
ответ дан 2 December 2019 в 23:24

Теги

Похожие вопросы