memcached просто создает другую виртуальную операционную систему? - PullRequest
0 голосов
/ 07 декабря 2011

Я прочитал несколько учебных пособий по memcached и у меня есть несколько вопросов, чтобы облегчить боль запросов к базе данных по умолчанию.

Что создается, чтобы позволить memcached работать?
Это виртуальные операционные системы с установленным mysql или база данных целиком хранится в ram?

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

Что если запрашиваемые данные не совпадают с данными в исходной базе данных, потому что я сам обновил их. как кеш узнает, что я его изменил?
Всегда ли проверяется, совпадают ли данные на БД с кэшируемыми?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2011

С на первой странице memcached :

Memcached - это хранилище значений ключей в памяти для небольших порций произвольных данных (строк, объектов) из результатов вызовов базы данных, вызовов API или визуализации страницы.

Хотя memcached часто используется с MySQL, он не имеет особых связей с MySQL или любой другой базой данных. Это просто хранилище значений ключей, обеспечивающее постоянный (O (1)) доступ к данным, кэшированным по ключу. Данные сохраняются в памяти процессом memcached. (Многое из этого объяснено в FAQ ).

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

0 голосов
/ 07 декабря 2011

1 Вы будете запускать сервер memcached на каждой вашей машине, назначая объем памяти, выделяемый для memcached.Затем с библиотекой memcached вы будете использовать объем памяти на каждом сервере.NB Нет способа узнать, на каком сервере будет храниться один объект.

2 Механизм дубликатов прост: вы можете установить таймаут для объекта.По истечении времени ожидания система удалит этот объект.Чтобы сохранить объект, вы назначите этому объекту ключ в виде хэша, поскольку вы не хотите, чтобы два объекта имели один и тот же ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...