Memcached и висока производителност MySQL - 💡 Fix My Ideas

Memcached и висока производителност MySQL

Memcached и висока производителност MySQL


Автор: Ethan Holmes, 2019

Memcached е система за кеширане на разпределени обекти, която първоначално е била разработена за подобряване на работата на LiveJournal и впоследствие е била използвана като стратегия за мащабиране за редица сайтове с голям товар. Той служи като голяма, изключително бърза хеш таблица, която може да се разпространи в много сървъри и достъпна едновременно от множество процеси. Той е проектиран да се използва за почти всяка нужда от кеширане в задния край, а за уеб приложения с висока производителност е чудесно допълнение към база данни като MySQL.

В една типична среда уеб разработчикът може да използва комбинация от кеширане на ниво процес и вграденото кеширане на MySQL заявки, за да извлече тази допълнителна производителност от приложение. Проблемът е, че кеширането в процеса е ограничено до уеб процеса, изпълняван на един сървър. В конфигурация, балансирана от натоварването, всеки сървър поддържа свой собствен кеш, като ограничава ефективността и наличния размер на кеша. По подобен начин, кешът за заявки на MySQL е ограничен до сървъра, на който се изпълнява процесът на MySQL. Кешът за заявки също е ограничен, тъй като може да кешира само редовни резултати. С memcached можете да настроите брой кеш сървъри, които могат да съхраняват всякакъв вид сериализиран обект и тези данни могат да се споделят от всички натоварени с уеб сървъри. Готино, не?

За да настроите memcached сървър, можете да изтеглите демона и да го стартирате с няколко параметъра. От web-страницата на memcached:

Първо стартирате memcached демон на толкова много резервни машини, колкото имате. Демонът няма конфигурационен файл, само няколко опции от командния ред, само 3 или 4 от които вероятно ще използвате:

# ./memcached -d -m 2048 -l 10.0.0.40 -p 11211

Това стартира memcached като демон, използвайки 2 GB памет и слушане на IP 10.0.0.40, порт 11211. Защото 32-битов процес може да адресира само 4 GB виртуална памет (обикновено значително по-малко, в зависимост от вашата операционна система), ако имате 32-битов сървър с 4-64GB памет, използващ PAE, можете просто да стартирате няколко процеса на машината, всеки от които използва 2 или 3 GB памет.

Това е толкова просто, колкото се получава. Няма реална конфигурация. Няма удостоверяване. Това е само гигантска хеш таблица. Очевидно е, че сте го настроили в частна мрежа, която не е адресируема. От там работата на заявката и актуализирането на кеша е изцяло на дизайнера на приложения. Вие получавате основните функции на набор, получаване и изтриване. Ето един прост пример в PHP:

$ memcache = нов Memcache; $ memcache-> addServer (.10 .0.0.40 ’, 11211); $ memcache-> addServer (.10 .0.0.41 ’, 11211);

$ value = “Данни за кеширане”;

$ memcache-> set (thekey ’, $ value, 60); echo “Кеширане за 60 секунди: $ стойност
“;

$ retrieved = $ memcache-> get ('thekey'); echo “Изтеглено: $ извлечено
“;

Библиотеката на PHP се грижи за мръсната работа по сериализиране на всяка стойност, която прехвърляте в кеша, така че можете да изпращате и извличате масиви или дори пълни обекти с данни.

В слоя с данни на приложението, вместо незабавно да се удари в базата данни, сега можете да зададете първо заявка за memcached. Ако елементът е намерен, няма нужда да се удари в базата данни и да се събере обектът за данни. Ако ключът не бъде намерен, вие избирате съответните данни от базата данни и съхранявайте производния обект в кеша. По същия начин актуализирате кеша всеки път, когато обектът ви на данни се променя и актуализира в базата данни. Ако приемем, че вашият API е добре структуриран, трябва да се направят само няколко редактирания, за да се промени драстично скалируемостта и производителността на вашето приложение.

Свързах се с няколко ресурса по-долу, където можете да намерите повече информация за използването на memcached в приложението си. В допълнение към документацията на web-сайта на memcached, Тод Хоф е съставил списък с статии в memcached и обобщил няколко техники за изпълнение на memcached. Това е доста гъвкав инструмент. За тези от вас, които са използвали memcached, дайте ни коментар в коментарите и да споделите вашите съвети и трикове.

Memcached стратегии за използване на Memcached и MySQL по-добре заедно Memcached и MySQL урок (PDF)



Може Да Се Интересувате

Докоснете Вашия вътрешен производител на най-големия DIY фестивал в Австралия

Докоснете Вашия вътрешен производител на най-големия DIY фестивал в Австралия


Изтегляне и печат Maker Хаос, Hackerspace съвет игра

Изтегляне и печат Maker Хаос, Hackerspace съвет игра


Open World: 20 бази данни, които ви помагат да намерите местните ресурси на създателите

Open World: 20 бази данни, които ви помагат да намерите местните ресурси на създателите


Внимание Прокуратори: 10 Последни минути Хелоуин костюми

Внимание Прокуратори: 10 Последни минути Хелоуин костюми






Последните Публикации