Jak zainstalować Memcached na Ubuntu 20.04 LTS?

Zoptymalizuj wydajność bazy danych, używając serwera Memcached z aplikacjami PHP i Python

Jeśli kiedykolwiek odczułeś ból związany z dużym obciążeniem bazy danych powodującym spowolnienia w twoich aplikacjach internetowych i zastanawiałeś się „Czy istnieje sposób na zmniejszenie opóźnień powodowanych przez zapytania do bazy danych?”, odpowiedź na to pytanie brzmi: „tak”. Memcached, demon pamięci podręcznej przyjaznego sąsiedztwa, jest tutaj, aby rozwiązać wszystkie twoje nieszczęścia! Buforowanie bazy danych jest jedną z najprostszych metod zmniejszania obciążenia bazy danych i przyspieszania dynamicznych aplikacji internetowych.

Memcached definiuje się jako wysokowydajny system buforowania obiektów w pamięci rozproszonej, z natury ogólny, ale pierwotnie przeznaczony do przyspieszania dynamicznych aplikacji internetowych poprzez zmniejszanie obciążenia bazy danych. Opracowany przez Brada Fitzpatricka na jego stronie LiveJournal w 2003 roku.

W tym artykule przyjrzymy się, jak zainstalować i skonfigurować Memcached w Ubuntu 20.04 i przyjrzymy się jego klientom specyficznym dla języka.

Warunki wstępne

System zainstalowany z Ubuntu 20.04 z użytkownikiem z uprawnieniami administracyjnymi, czyli sudo użytkownik.

Instalacja

Memcached jest dostępny w oficjalnym repozytorium Ubuntu 20.04, oprócz Memcached zamierzamy również zainstalować narzędzie CLI znane jako libmemcached-tools do zarządzania Memcached. Po prostu uruchom następujące polecenie, aby zainstalować oba

sudo apt install memcached libmemcached-tools

Sprawdź instalację

Po zakończeniu instalacji demon Memcached sam uruchamia się w tle. Aby zweryfikować instalację, możemy użyć komendy z libmemcached-tools pakiet, aby uzyskać statystyki serwera Memcached. Albo biegnij

memcstat --servers localhost

lub

memcstat --serwery 127.0.0.1

ten memcstat polecenie pokazuje statystyki uruchomionego serwera. Powyższe polecenie spowoduje wyświetlenie danych wyjściowych poniżej.

Różne statystyki, takie jak czas pracy w sekundy, wersja oraz pid będą wyświetlane jako dane wyjściowe. Jeśli jednak żadne dane wyjściowe nie są wyświetlane, możliwe, że Memcached nie działa. Dlatego musisz uruchomić następujące polecenie, aby uruchomić serwer Memcached.

sudo systemctl start memcached

Aby uruchomić serwer Memcached podczas uruchamiania systemu, użyj następującego polecenia.

sudo systemctl włącz memcached

Konfiguracja Memcached

Jeśli masz zainstalowany memcached na samym serwerze witryny, nie ma potrzeby zmiany pliku konfiguracyjnego, ponieważ memcached jest wstępnie skonfigurowany do pracy z localhost.

Z drugiej strony, jeśli zainstalowałeś Memcached w osobnym systemie, będziesz musiał zmienić konfigurację, aby zezwolić serwerowi zdalnemu na dostęp do serwera Memcached.

Konfigurowanie zdalnego dostępu do serwera Memcached

Memcached jest podatny na ataki DDoS (Distributed Denial of Service). Nieprawidłowa reguła zapory i otwarte porty UDP sprawią, że serwer będzie otwarty i podatny na ataki DDoS.

Aby złagodzić ryzyko, możemy albo wyłączyć protokół UDP dla Memcached w konfiguracji, albo skonfigurować zaporę ogniową tylko tak, aby zezwalała na zaufane serwery.

Po wyjęciu z pudełka Ubuntu jest dostarczane bez otwartych portów TCP lub UDP. Ponadto demon zapory ufw (nieskomplikowana zapora) nie jest domyślnie włączona.

Włączymy zaporę i skonfigurujemy konfigurację Memcached, aby złagodzić podatność DDoS.

Najpierw włącz ufw uruchamiając następujące polecenie:

sudo systemctl włącz ufw

Następnie uruchom ufw usługę, uruchamiając poniższe polecenie:

sudo systemctl uruchom ufw

Po uruchomieniu zapory możemy wreszcie skonfigurować reguły zapory. Po pierwsze, włącz port 22, aby umożliwić połączenia SSH. Do zdalnego dostępu do żądanego serwera potrzebny jest protokół SSH.

sudo ufw zezwalaj 22

Po drugie, musisz znać adres IP klienta, czyli hosta aplikacji internetowej oraz adres IP serwera, czyli serwera Memcached.

W tym przypadku załóżmy, że IP Klienta to 192.168.0.4 i adres IP serwera Memcached 192.168.0.5 w sieci lokalnej.

Aby umożliwić zdalny dostęp serwera memcached do serwera klienta, uruchom:

sudo ufw zezwala z 192.168.0.4 na dowolny port 11211

Zastąp 192.168.0.4 z żądanym adresem IP Klienta.

Następnie edytuj plik konfiguracyjny Memcached znajdujący się w /etc/memcached.conf biegiem nano Komenda.

sudo nano /etc/memcached.conf

ten memcached.conf plik konfiguracyjny otworzy się w edytorze nano, poszukaj -l 127.0.0.1 linia w konfiguracji i wymień 127.0.0.1 z Twoim adresem IP Memcached Server lub w tym przypadku 192.168.0.5.

Po wymianie prasy Ctrl+O aby zapisać do pliku konfiguracyjnego i nacisnąć enter, naciśnij ctrl+x wyjść z nano.

Uruchom ponownie serwer Memcached i ufw firewall, uruchamiając poniższe polecenie.

sudo systemctl restart memcached ufw

Teraz zakończyliśmy instalację i konfigurację serwera Memcached na Ubuntu 20.04.

Łączenie z serwerem Memcached

Aby korzystać z serwera Memcached, musisz zainstalować klienta specyficznego dla języka. Na szczęście Memcached obsługuje wiele popularnych języków.

Zobaczmy więc, jak zainstalować php oraz pyton klient dla Memcached.

PHP jest najpopularniejszym językiem skryptowym po stronie serwera, a Memcached jest najczęściej używany przez programistów internetowych do poprawy wydajności serwera aplikacji internetowych obsługiwanych przez PHP.

Aby zainstalować obsługę memcached w php, uruchomić:

sudo apt zainstaluj php-memcached

Python również ma kilka bibliotek, które mogą pracować i wchodzić w interakcje z serwerem Memcached, takie jak pymemcached lub python-memcached.

Możesz zainstalować memcached dla Pythona, uruchamiając następujące polecenia pip:

pip zainstaluj pymemcache
pip install python-memcached

Podsumowując, przyjrzeliśmy się instalacji, konfiguracji i kilku specyficznym językowo klientom Memcached w Ubuntu 20.04.

Aby poznać bardziej szczegółowe i zaawansowane wykorzystanie Memcached, spójrz na Memcached Wiki.