Я недавно познакомился с memcached. Это вызвало у меня несколько серьезных вопросов. Предположим, у меня есть новостное веб-приложение. Очевидно, что наиболее затратной задачей является отправка подготовленных запросов для получения любого новостного контента из базы данных. Если предположить, что сама база данных кэширует содержание новостей, а также планы запросов, каковы преимущества использования отдельных серверов кеширования?
Подробнее о приложении (воображаемом):
=== в случае использования кеш-серверов ===
Я знаю, что кеш-серверы, такие как memcached, фактически создают впечатление, что у вас агрегированный кеш 96 ГБ. Но с другой стороны, должно быть по крайней мере несколько дополнительных запросов от земли веб-сервера к земле сервера кеширования.
Мое понимание пути, по которому должен проходить каждый запрос, сделанный клиентами, выглядит следующим образом:
При использовании кеш-серверов:
веб-сервер => сервер кеширования == существуют ли данные внутри сервера кеширования? =>
Если не используются кеш-серверы:
веб-сервер => сервер БД => веб-сервер => клиент
А также что, если и веб-сервер, и сервер БД находятся на одном компьютере? Чтобы получилось вот это: веб-сервер => клиент
Итак, мои основные вопросы:
Прежде всего, кеш используется для увеличения производительности системы. Разница между кешем и базой данных в основном заключается в данные, хранящиеся в базе данных, сохраняются на диске, а, как и в кеше, они сохраняются в оперативной памяти. потому что доступ к данным из ОЗУ происходит быстрее, чем с диска.
Некоторые базы данных, такие как MySQL, имеют встроенный кеш, но у них также есть несколько проблем, например, когда данные, хранящиеся в кеше MySQL, будут автоматически удалены, если вы сделаете какие-либо обновления в таблице, такие как вставка, удаление и обновление.
Также нет необходимости держать другой сервер для кеширования, если вы собираетесь кэшировать только несколько МБ данных. в некоторых системах кеширования, таких как Memcached и Redis, вам может понравиться размер памяти, выделяемой для кеша. если кеш достиг предела памяти, уже существующие данные будут удалены в соответствии с настроенной нами политикой выселения. Кроме того, мы используем кеш не только для кеширования результатов запросов к БД, но мы также можем кешировать некоторые параметры конфигурации использования вместо того, чтобы каждый раз читать их из файла.
Кажется, что новым пользователям не разрешено голосовать за вопросы!
Это очень общий ответ. голосование за это ... Также будет принято, если вы сосредоточитесь на моих вопросах