Тематические статьи →

Ускоряем работу сайта при помощи кеширования на базе Memcached

Memcached — это хра­ни­лище «ключ => зна­че­ние», исполь­зо­ва­ние кото­рого очень эффек­тивно для уско­ре­ния работы сайта или веб-приложения.

Memcached реализует кэширование дан­ных в опе­ра­тив­ной памяти на основе пара­дигмы хеш-таб­ли­цы, то есть там можно хра­нить дан­ные «ключ => зна­че­ние», а ско­рость чте­ния и записи будет очень высокой.

Для сер­вер­ного кеши­ро­ва­ния Memcached под­хо­дит очень хорошо — кеши­ро­вать можно как про­ме­жу­точ­ные дан­ные (в сери­а­ли­зо­ван­ном виде), так и дан­ные, кото­рые непо­сред­ственно «отда­ются» пользователям — фраг­менты стра­ниц или даже стра­ницы цели­ком. В слу­чае кеши­ро­ва­ния стра­ниц цели­ком, как пра­ви­ло, проще реа­ли­зо­вать отдачу подоб­ного рода ста­тики на уровне веб-сер­ве­ра, однако если нагрузка на дис­ко­вую под­си­стему высо­ка, то стоит пом­нить, что Memcached может напря­мую рабо­тать с веб-сер­ве­ром (для nginx, напри­мер, есть соот­вет­ству­ю­щий модуль), что поз­во­ляет на уровне бекенда писать дан­ные в кеш, а полу­чать этот кеш можно непо­сред­ственно веб-сер­ве­ром без обра­ще­ния к бекен­ду.

В API memcached есть только базо­вые функ­ции — это выбор сер­ве­ра, уста­новка и раз­рыв соеди­не­ний, добав­ле­ние, уда­ле­ние, обнов­ле­ние и полу­че­ние зна­че­ния по задан­ному клю­чу.

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

Для работы с Memcached есть гото­вые биб­лио­те­ки, напи­сан­ные для работы с язы­ками программирования C, C++, C#, Ruby, Perl, PHP, Python, Java и с дру­ги­ми. Некото­рые CMS имеют в своём составе модули кеши­ро­ва­ния, кото­рые могут рабо­тать с Memcached, если дан­ный сер­вис запу­щен на сервере.

Поделитесь с друзьями:


Информация о публикации:

Материал опубликован в 2014 году. Эта статья о веб-разработке и про бэкенд-разработку. При пере­пуб­ли­ка­ции обя­за­тельно ука­за­ние пер­во­ис­точ­ника в виде гипер­тек­сто­вой ссылки на сайт web-creator.ru

Воспользуйтесь нашими
знаниями и опытом

Отправьте нам сообщение при помощи формы. Или напишите на e-mail s@web-creator.ru

Мы максимально оперативно ответим Вам по электронной почте или перезвоним.

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

Либо просто позвоните нам по номеру: +7 495 215-1501

Мы работаем по будним дням с 10 до 19 часов.

Комплексные услуги

Реализация «под ключ» проектов по созданию различных видов сайтов, разработка веб-приложений для автоматизации бизнес-процессов, ведение контекстных и медийных рекламных кампаний, поисковое продвижение, комплексная поддержка веб-проектов, консалтинговые услуги.