Как да конфигурирате Redis Cache за Joomla в SPanel

Това ръководство ще ви преведе през конфигурирането на Redis Cache за Joomla сайт, хостван в SPanel. В края на тази статия, Redis ще бъде внедрен във вашия акаунт, свързан в Global Configuration на Joomla и ще бъде потвърдено, че обработва реален кеш трафик. Ще са ви необходими достъп до SPanel, администраторски достъп до Joomla сайта и активирано PHP Redis разширение за PHP версията, която използва сайтът.

Важно е да знаете, че Redis ускорява Joomla едва след като Joomla е конфигуриран да го използва. Самото внедряване на Redis не променя нищо, докато връзката не бъде направена и проверена, затова стъпката за проверка е също толкова важна, колкото и настройката.

Redis е един от няколкото инструмента за производителност и управление, включени без допълнително заплащане във всеки менажиран VPS от NS1, заедно с останалите функции на SPanel. Внедрете Redis, свържете Joomla, потвърдете работата му в монитора и ще разполагате с по-бърз сайт и необходимите контроли, за да го поддържате такъв.

Какво прави Redis за Joomla

Redis е хранилище за данни в паметта. Joomla може да го използва като кеш, което означава, че вместо да изгражда едни и същи данни при всяка заявка, Joomla запазва често използваните резултати в паметта и ги подава оттам. Така базата данни извършва по-малко повтаряща се работа, а страниците, които разчитат на тези данни, се зареждат по-бързо.

Как да конфигурирате Redis Cache за Joomla в SPanel, Какво прави Redis за Joomla
Фигура 1. При попадение в Cache Joomla отговаря от Redis в паметта. При пропуск се прави заявка към MariaDB, след което резултатът се съхранява за следващия път.

Важно е да е ясно и какво Redis няма да направи, защото реалистичните очаквания от самото начало спестяват проблеми при отстраняване на неизправности по-късно:

  • Redis не заменя MariaDB. Базата данни остава източникът на данни. Redis съхранява само бързи копия на част от тези данни.
  • Redis е кеш, а не превключвател за скорост. Той не прави нищо за Joomla, докато Joomla не бъде насочена към него, което е и основната причина за тази статия.
  • Redis не може да отстрани несвързани bottlenecks. Бавен API на външен доставчик, неефективно разширение или тежки, некеширани изображения и JavaScript във фронтенда са отделни проблеми с отделни решения. Кеширането на работата с базата данни няма да ги прикрие.

Предварителни изисквания

Потвърдете всяко от следните условия, преди да започнете:

  • Администраторски достъп до Joomla сайта. Описаните тук настройки на кеша се намират в Global Configuration на Joomla и са еднакви в текущите версии Joomla 5.x и 6.x.
  • Активирано PHP Redis разширение за PHP версията, която използва сайтът. Joomla използва това разширение, за да комуникира с Redis, а можете да го активирате или проверите в PHP Manager.
  • Достъп до SPanel за внедряване на Redis във вашия хостинг акаунт.
  • Скорошно резервно копие на сайта. Конфигурацията на кеша е с нисък риск, но резервното копие означава, че всяка промяна може да бъде върната с една стъпка.

Част 1: Внедряване на Redis в SPanel

SPanel създава отделен Redis екземпляр за вашия хостинг акаунт при поискване. Внедряването става с едно щракване и ви дава двете стойности, от които Joomla се нуждае: хост и парола.

  1. Влезте в SPanel и отворете екрана Redis Cache.
  2. Щракнете върху Deploy. SPanel създава Redis екземпляр за вашия акаунт с частен loopback адрес, уникална парола, лимит от 256 MB памет и политика за изчистване allkeys-lfu, като всичко работи като отделна услуга.
  3. Запишете Redis хоста и паролата, показани на екрана. Това са стойностите, които ще въведете в Joomla. Пазете паролата в тайна.
  4. Потвърдете, че статусът показва, че екземплярът работи. Вече сте готови да свържете Joomla.

Забележка: SPanel създава един Redis екземпляр на хостинг акаунт, а не по един за всеки сайт. Ако имате няколко сайта в един и същ акаунт, те ще споделят този Redis. Част 2 и Част 5 обясняват как да ги разделите и какво означава това при изчистване на Cache.

Част 2: Свързване на Joomla с Redis

След като Redis е внедрен, насочете Joomla към него от административния панел. Полетата за връзката се намират в Global Configuration на Joomla.

  1. Влезте в административния панел на Joomla.
  2. Отидете на System, след което в Setup щракнете върху Global Configuration.
  3. Отворете раздела System и намерете Cache Settings.
  4. Задайте Cache Handler на Redis. Полетата за връзка с Redis ще се появят, след като го изберете.
  5. Задайте System Cache на ON – Conservative caching за начало. Conservative caching подава един и същ кеширан резултат на всички посетители и е по-безопасната настройка по подразбиране. Progressive caching съхранява версия за всеки посетител и е подходящо за по-тесен набор от сайтове.
  6. Въведете стойностите за връзката от екрана Redis Cache в SPanel:

Redis Server Host: частният loopback адрес, показан в SPanel.

Redis Server Port: портът, показан в SPanel (портът по подразбиране на Redis е 6379).

Redis Server Authentication: паролата, показана в SPanel.

Redis Database: 0, освен ако не разделяте няколко сайта (вижте забележката по-долу).

  1. Щракнете върху Save & Close. Joomla ще започне да насочва кеш операциите към Redis.

Забележка: Имате повече от един сайт в същия акаунт? Задайте различен номер на Redis Database за всеки сайт (0, 1, 2 и т.н.) в неговата Joomla конфигурация. Всички сайтове ще продължат да използват един и същ Redis екземпляр, но номерираните бази данни предотвратяват конфликтите между ключовете.

Част 3: Проверка дали Joomla действително използва Redis

Не приемайте, че връзката работи само защото Joomla е запазила настройките без грешка. Проверете я. Тук вграденият монитор и статистиките на SPanel са особено полезни, защото показват реалния трафик, достигащ до Redis, вместо да ви оставят да гадаете.

  1. Отворете няколко страници от сайта си в Joomla – както във фронтенда, така и в администрацията, за да има какво да бъде кеширано.
  2. На екрана Redis Cache в SPanel стартирайте монитора за избрана от вас продължителност. Той показва в реално време всяка команда, която Redis изпълнява. Докато разглеждате сайта, трябва да се появят операции за четене и запис. Ако нищо не се показва, Joomla не комуникира с Redis, затова проверете отново Cache Handler и полетата за връзка от Част 2.
  3. Отворете статистиките, за да видите използваната памет, съхранените ключове и броя попадения и пропуски. Увеличаването на броя ключове и натрупването на попадения са знак, че кешът реално работи.

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

Част 4: Памет и изчистване

При ново внедряване получавате лимит от 256 MB памет и политика за изчистване allkeys-lfu. И двете настройки се намират на екрана Redis Cache в SPanel и могат да бъдат променяни.

Колко памет да дадете на Redis

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

Практическо правило: Започнете със стойността по подразбиране в SPanel, наблюдавайте статистиките за паметта и изтласкването на Redis и коригирайте според реалното използване.

Ако статистиките показват, че Redis използва значително по-малко от определения лимит, имате свободен ресурс. Ако постоянно е пълен и изтласква ключове, за да освободи място, това е сигнал да увеличите лимита на паметта или да прецените какво кеширате.

Какво означава политиката за изчистване

Политиките за изчистване са просто правилата, които Redis следва, когато паметта се запълни и е необходимо място за нови ключове. 

По подразбиране allkeys-lfu изхвърля първо ключовете, които се използват най-рядко, като така защитава данните, до които сайтът ви има най-чест достъп. SPanel предоставя целия набор от осем Redis политики в падащо меню, за да можете да съобразите политиката с работното натоварване. За стандартно Joomla кеширане, настройката по подразбиране е добър начален вариант и няма нужда да я променяте, освен ако конкретния ви проект не дава причина за това.

Част 5: Изчистване на Redis

Когато внедрите нов код, промените шаблон или актуализирате разширение, Redis може да продължи да подава старите кеширани данни. Решението е изчистване на Cache, а SPanel предоставя този бутон директно, без да е необходимо да се обръщате към поддръжката.

На екрана Redis Cache щракнете върху Flush Cache. Това изтрива всички ключове, а Joomla възстановява кеша, докато посетителите разглеждат сайта. Собственият инструмент Clear Cache на Joomla в System върши подобна работа от страна на приложението, докато изчистването на ниво SPanel премахва данните от самия Redis екземпляр.

Предупреждение: Flush премахва всеки ключ от Redis екземпляра на вашия акаунт. Тъй като един Redis обслужва целия акаунт, изчистването засяга всички сайтове, които го споделят, а не само сайта, който сте имали предвид. Няма частично изчистване.

Част 6: Отстраняване на неизправности

Повечето проблеми между Redis и Joomla се свеждат до няколко причини. Прегледайте таблицата отгоре надолу според симптома, който виждате.

ПроблемВероятна причинаКакво да проверите
Redis е внедрен, но мониторът не показва команди от JoomlaJoomla всъщност не използва RedisДали Cache Handler е зададен на Redis, System Cache е ON и сте натиснали Save & Close
Грешка при удостоверяване или отказана връзкаГрешна парола, хост или портКопирайте отново хоста и паролата от екрана Redis Cache и потвърдете, че портът съвпада
Грешки в сайта веднага след активиране на RedisЛипсва PHP Redis разширениетоАктивирайте Redis разширението за PHP версията на сайта в PHP Manager и опитайте отново
Redis показва, че е спрянУслугата е била спряна или е претърпяла сривСтартирайте или рестартирайте я от екрана Redis Cache; SPanel също я рестартира автоматично при повреда
Ключовете постоянно се изчистват или паметта винаги е запълненаКешът е по-голям от определения лимит на паметтаПрегледайте статистиките, след което увеличете лимита на паметта или намалете кешираните данни
Съдържание отпреди актуализациятаСтарите ключове все още са кешираниИзползвайте Flush Cache, след което презаредете засегнатите страници
Два сайта показват кеширани данни един от другСайтовете споделят Redis на един акаунт и използват един и същ номер на базата данниСайтовете споделят Redis на един акаунт и използват един и същ номер на базата данни

Защо Redis е по-лесен за управление със SPanel

На самоуправляван сървър, конфигурирането на Redis означава да го инсталирате ръчно, да създадете неговата услуга, да зададете частен адрес, да генерирате парола, да настроите автоматично рестартиране и да изградите собствен начин за мониторинг. Това е сериозна подготовка, преди да кеширате дори един ключ.

SPanel върши тази инфраструктурна работа вместо вас. 

Внедряването на Redis създава екземпляра, неговия частен loopback адрес, уникалната му парола и услугата, като автоматичното рестартиране при повреда вече е конфигурирано. Оттам нататък контролите за жизнения цикъл, конфигурацията, статистиките, мониторингът и изчистването на Cache са достъпни чрез бутони на един екран.

Как да конфигурирате Redis Cache за Joomla в SPanel, Защо Redis е по-лесен за управление със SPanel
Фигура 2. Всеки акаунт получава собствен изолиран Redis. Сайтовете в един и същ акаунт споделят един екземпляр за този акаунт.

Забележка: SPanel управлява инфраструктурата на Redis, а не настройките на Joomla. То не конфигурира Joomla вместо вас, затова Част 2 все още е стъпка, която трябва да изпълните сами.

Сигурност и ограничения

Има няколко ограничения, които е добре да знаете, за да съобразите настройката с реалните възможности на Redis в SPanel:

  • Една Redis инстанция на хостинг акаунт, а не по един на сайт. Сайтовете в един и същ акаунт го споделят.
  • Redis с един node. Клъстеризация, репликация и режими за висока наличност не са достъпни през този екран.
  • Удостоверяване с парола (requirepass), а не Redis ACL. Това е достатъчно за единичен екземпляр като този.
  • Изчистването е глобално за вашия Redis. То изтрива всичко наведнъж, без изчистване по ключ или частично изчистване.
  • Мониторът показва реална активност на ключовете и командите. Това е инструмент за отстраняване на неизправности, затова приемайте резултатите му като чувствителна информация.
  • Redis използва RAM паметта на сървъра на вашия акаунт. Определете размера на Redis спрямо реално наличната памет във вашия план.
  • Redis е хранилище в паметта с периодични snapshot-и, а не постоянна основна база данни. Приемайте го като кеш, който винаги можете да възстановите от изходните си данни.

Често задавани въпроси

В: Трябва ли да съм разработчик, за да настроя Redis за Joomla?

О: Не. Joomla има вграден Redis cache handler, така че настройката се свежда до внедряване на Redis в SPanel и въвеждане на хоста и паролата в Global Configuration на Joomla. Не са необходими промени в кода.

В: Redis заменя ли базата данни на Joomla?

О: Не. MariaDB остава източникът на информацията. Redis съхранява бързи копия на често използвани данни, за да извършва базата по-малко повтаряща се работа, но самата база данни продължава да съхранява всичко постоянно.

В: Колко памет трябва да дам на Redis за Joomla?

О: Започнете със стойността по подразбиране в SPanel от 256 MB, следете статистиките за паметта и изчистване на Redis и коригирайте оттам. Увеличете лимита, ако екземплярът постоянно е пълен и изчиства ключове.

В: Мога ли да използвам Redis за повече от един Joomla сайт в един и същ акаунт?

О: Да. Сайтовете споделят един Redis екземпляр, затова задайте различен номер на Redis Database за всеки от тях в неговата Joomla конфигурация, за да държите ключовете разделени.

В: Как да изчистя Redis Cache на Joomla след актуализация?

О: Щракнете върху Flush Cache на екрана Redis Cache в SPanel, за да изчистите екземпляра, или използвайте собствения инструмент Clear Cache на Joomla в System. Не забравяйте, че изчистването през SPanel премахва Cache на всеки сайт, който споделя този Redis.

Борислав Тонев

Автор

Борислав е копирайтър с набито око за детайла и увлечение по информационните технологии, което датира от детството му. През годините, той е писал за огромно разнообразие от най-различни теми, но признава, че най-вълнуващото предизвикателство за него е да разбере как работи модерният онлайн свят и да предаде знанията си на читателите.

Напишете коментар

Задължително поле*