Почему мне нужно использовать кеш-сервер, даже если СУБД имеет собственный кеш?

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

Подробнее о приложении (воображаемом):

  • Размер базы данных более 300 ГБ (желательно MySQL или любая другая СУБД)
  • Оперативная память 32 ГБ
  • База данных может находиться или не находиться на веб-сервере.

=== в случае использования кеш-серверов ===

  • Три сервера, каждый из которых с памятью 32 ГБ

Я знаю, что кеш-серверы, такие как memcached, фактически создают впечатление, что у вас агрегированный кеш 96 ГБ. Но с другой стороны, должно быть по крайней мере несколько дополнительных запросов от земли веб-сервера к земле сервера кеширования.

Мое понимание пути, по которому должен проходить каждый запрос, сделанный клиентами, выглядит следующим образом:

При использовании кеш-серверов:

веб-сервер => сервер кеширования == существуют ли данные внутри сервера кеширования? =>

  1. ДА => веб-сервер => клиент
  2. НЕТ => сервер БД => веб-сервер => клиент; также запрос на сохранение в кеш-сервер

Если не используются кеш-серверы:

веб-сервер => сервер БД => веб-сервер => клиент

А также что, если и веб-сервер, и сервер БД находятся на одном компьютере? Чтобы получилось вот это: веб-сервер => клиент

Итак, мои основные вопросы:

  • Стоит ли делать дополнительные запросы от веб-сервера к другим серверам вместо того, чтобы делать единичный запрос к нашей БД?
  • Я что-то здесь пропустил?
  • Есть ли другие решения? Какой подход используют большие системы, такие как Википедия, для решения этой конкретной проблемы и кеширования?
  • Можем ли мы использовать другой подход, например, использование какой-либо специальной системы кеширования связь с СУБД, каждый сервер хранит базу данных, но только кэширует часть его в памяти. Таким образом, не только мы можем использовать другие серверы для обеспечения высокой доступности и репликации, но мы можем сократить количество запросов.
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
240
1

Ответы 1

  • Прежде всего, кеш используется для увеличения производительности системы. Разница между кешем и базой данных в основном заключается в данные, хранящиеся в базе данных, сохраняются на диске, а, как и в кеше, они сохраняются в оперативной памяти. потому что доступ к данным из ОЗУ происходит быстрее, чем с диска.

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

  • Также нет необходимости держать другой сервер для кеширования, если вы собираетесь кэшировать только несколько МБ данных. в некоторых системах кеширования, таких как Memcached и Redis, вам может понравиться размер памяти, выделяемой для кеша. если кеш достиг предела памяти, уже существующие данные будут удалены в соответствии с настроенной нами политикой выселения. Кроме того, мы используем кеш не только для кеширования результатов запросов к БД, но мы также можем кешировать некоторые параметры конфигурации использования вместо того, чтобы каждый раз читать их из файла.

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

Jack 17.10.2018 15:45

Кажется, что новым пользователям не разрешено голосовать за вопросы!

Jack 17.10.2018 15:56

Другие вопросы по теме