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.