Redis е с отворен код (BSD лицензиран), хранилище за структура на данни в паметта, използвано като база данни, кеш и посредник на съобщения. Може да се комбинира с други бази данни като MySQL, за да осигури механизъм за кеширане на вашите заявки.
В тази статия ще покажем как да кеширате MySQL заявките, които са необходими за изобразяване на страници на WordPress. Това ще ни осигури значителни печалби в производителността, макар и с някои предупреждения.
Въведение в по-доброто кеширане на WordPress
WordPress използва базата данни MySQL за кеширане на вътрешни обекти на приложението (хлебни трохи, елементи от менюто и т.н.), които могат да бъдат скъпи за генериране. Тъй като базата данни обработва и заявки за заявки за страници, това е вероятно най-често срещаното затруднение и често причинява увеличено време за зареждане.
Redis предоставя механизъм за кеширане, който действа като алтернатива на базата данни MySQL. Ако потребител посети WordPress страница, MySQL заявките, необходими за генериране на страницата, се обслужват чрез Redis, който кешира резултатите. Това води до изключително бързо време за зареждане, сравнимо със статичните страници.
Друг популярен избор за кеширане е Memcached. Redis обаче прави почти всичко, което прави Memcached, така че ще използваме ScaleGrid хостинг за Redis™* в името на този урок.
Как работи Redis кеширането?
Когато потребител поиска страница на WordPress за първи път, на сървъра се извършва MySQL заявка. Redis кешира тази заявка, така че когато друг потребител поиска същата страница на WordPress, резултатите се предоставят от Redis, без да е необходимо повторно да се прави заявка към базата данни.
Ако заявката не е кеширана в Redis, резултатите се предоставят от MySQL, които след това се добавят към кеша на Redis.
Ако конкретна стойност се актуализира в базата данни, съответната стойност на Redis се анулира, за да се предотврати предоставянето на лоши кеш данни на потребителя.
Изисквания за урок
Ето списък на технологиите, използвани в тази статия:
- 2 инсталации на WordPress (със и без приставката, за сравнителни показатели)
- Redis™ сървър
- Приставка за кеширане на обекти Redis WP
Инсталиране на WordPres
Можете да изтеглите най-новата версия на WordPress тук и да настроите две различни инсталации на хост като Heroku или AWS.
Сървър Redis
ScaleGrid осигурява поддръжка от световна класа за Redis™ самостоятелни и главни/подчинени клъстери с подобрени функции за сигурност. Ще използваме самостоятелен Redis™ клъстер, хостван в ScaleGrid със стратегията за кеширане Allkeys-LRU и можете да се регистрирате за безплатна 30-дневна пробна версия на нашия хостинг за Redis™, за да помогнете с този урок.
Приставка за кеширане на обекти Redis WP
Този плъгин се използва като добавка към вашата WordPress инсталация и може да бъде конфигуриран да използва хоста Redis™. Можете да намерите приставката тук.
Инструкции за настройка:Redis Object Cache за WordPress
Ето стъпките за инсталиране на Redis Object Cache Plugin на инсталация на WordPress.
Стъпка 1:Инсталирайте Redis Cache Plugin
Този урок предполага, че вече имате настроени две нови инсталации на WordPress. На един от тях трябва да инсталирате плъгина Redis Object Cache. След като плъгинът е инсталиран, можете да го активирате от менюто на плъгините.
Стъпка 2:Намерете Redis във вашите настройки
След като плъгинът бъде активиран, в менюто с настройки ще се появи опция Redis.
Стъпка 3:Добавете конфигурации на WordPress
След като настроим плъгина, трябва да добавим опции за конфигурация към конфигурационния файл на WordPress. Като минимум ще трябва да настроите следните опции:
define('WP_REDIS_HOST', ''); define('WP_REDIS_PASSWORD', '');
Можете да намерите горните опции на страницата с подробности за клъстера ScaleGrid за Redis™.
Запазете конфигурацията и активирайте кеша на обекти. Ако удостоверяването е правилно, трябва да видите следния екран:
В този момент Redis е конфигуриран като кеш за вашата инсталация на WordPress.
Наблюдение и отстраняване на грешки в WordPress заявки
Всички Redis клъстери се инсталират с интерфейса на командния ред Redis (redis-cli), който можете да използвате за наблюдение на входящите заявки от WordPress. Ето екранна снимка как може да изглежда това:
Ако не виждате никакъв изход на конзолата, отидете на уебсайта на WordPress и опреснете.
WordPress &Redis метрики за проследяване
Основният показател за проследяване тук е времето за зареждане на страницата. Ето конфигурацията по подразбиране, която използваме за новата инсталация:
- WordPress:4.9.5
- Redis:v.4.0.2
- Тема на WordPress:Двадесет и седемнадесет
Въз основа на нова инсталация на горните параметри, можем да видим почти 50% намаление на времето за зареждане на страницата:
- Без кешът за обекти Redis =~900ms
- С кешът за обекти на Redis =~400ms
Недостатъци на Redis Object Cache
Има няколко предупреждения за използването на подхода Redis Object Cache в WordPress. Механизмът за кеширане не работи добре, ако имате инсталирани много плъгини и теми. Това се дължи на факта, че всичките им данни ще трябва да се кешират и с Redis.
Можете също да научите как да кеширате туитове с помощта на Node.js, Redis и Socket.io в предишната ни статия.
Както винаги, ако изградите нещо страхотно, напишете ни в Twitter за това @scalegridio. Ако имате нужда от помощ при управлението или хостването на MongoDB® Database или Redis™, свържете се с нас на [email protected].