Ottimizza le prestazioni del tuo database utilizzando il server Memcached con le tue app PHP e Python
Se hai mai sentito il dolore dell'elevato carico del database che causa rallentamenti nelle tue app Web e ti sei chiesto "C'è un modo per ridurre la latenza causata dalle query DB?", Allora la risposta a questa domanda è un grande sì. Memcached un amichevole demone della cache della memoria del quartiere è qui per risolvere tutti i tuoi problemi! La memorizzazione nella cache del DB è uno dei metodi più semplici per alleviare il carico del DB e velocizzare le applicazioni web dinamiche.
Memcached si definisce come un sistema di memorizzazione nella cache di oggetti di memoria distribuita ad alte prestazioni, di natura generica, ma originariamente destinato all'uso per accelerare le applicazioni Web dinamiche alleviando il carico del database. Sviluppato da Brad Fitzpatrick per il suo sito Web LiveJournal nel 2003.
In questo articolo, vedremo come installare e configurare Memcached in Ubuntu 20.04 e esamineremo i suoi client specifici per la lingua.
Prerequisiti
Un sistema installato con Ubuntu 20.04 con un utente con diritti di amministratore, ovvero un sudo
utente.
Installazione
Memcached è disponibile sul repository ufficiale di Ubuntu 20.04, oltre a Memcached installeremo anche uno strumento CLI noto come libmemcached-tools
per gestire Memcached. Basta eseguire il seguente comando per installarli entrambi
sudo apt install memcached libmemcached-tools
Verifica installazione
Al termine dell'installazione, il demone Memcached si avvia in background da solo. Per verificare l'installazione, possiamo usare un comando da libmemcached-tools
pacchetto per ottenere le statistiche del server Memcached. O corri
memcstat --servers localhost
o
memcstat --servers 127.0.0.1
Il memcstat
comando mostra le statistiche del server in esecuzione. Il comando precedente risulterà nell'output visualizzato di seguito.
Varie statistiche come uptime
in secondi, versione
e pid
verrà visualizzato come output. Tuttavia, se non viene visualizzato alcun output, è possibile che Memcached non sia in esecuzione. Pertanto, è necessario eseguire il seguente comando per avviare il server Memcached.
sudo systemctl start memcached
Per eseguire il server Memcached all'avvio del sistema, utilizzare il seguente comando.
sudo systemctl abilita memcached
Configurazione di Memcached
Se il tuo memcached è installato sul server del sito Web stesso, non è necessario modificare il file di configurazione poiché memcached è preconfigurato per funzionare con localhost.
D'altra parte, se hai installato Memcached su un sistema separato, dovrai modificare la configurazione per consentire al server remoto l'accesso al server Memcached.
Configurazione dell'accesso remoto per il server Memcached
Memcached è vulnerabile agli attacchi DDoS (Distributed Denial of Service). Una regola firewall errata e porte UDP aperte lasceranno il tuo server aperto e vulnerabile agli attacchi DDoS.
Per mitigare il rischio, possiamo disabilitare il protocollo UDP per Memcached nella configurazione o impostare il firewall solo per consentire server affidabili.
Fuori dalla scatola, Ubuntu viene fornito senza porte TCP o UDP aperte. Inoltre, il demone firewall ufw
(firewall semplice) non è abilitato per impostazione predefinita.
Abiliteremo il firewall e imposteremo la configurazione di Memcached in modo da poter mitigare la vulnerabilità DDoS.
Innanzitutto, abilita il ufw
eseguendo il seguente comando:
sudo systemctl abilita ufw
Quindi avviare il ufw
service eseguendo il comando seguente:
sudo systemctl start ufw
Con il firewall in esecuzione, possiamo finalmente impostare le regole del firewall. Innanzitutto, abilita la porta 22 per consentire le connessioni SSH. SSH è necessario per accedere in remoto al server desiderato.
sudo ufw consenti 22
In secondo luogo, è necessario conoscere l'indirizzo IP del client, ovvero l'host dell'applicazione web e l'indirizzo IP del server, ovvero il server Memcached.
In questo caso, supponiamo che l'IP del cliente sia 192.168.0.4
e IP del server Memcached da essere 192.168.0.5
su una rete locale.
Quindi, per consentire l'accesso remoto del server memcached al server client, eseguire:
sudo ufw consente da 192.168.0.4 a qualsiasi porta 11211
Sostituisci il 192.168.0.4
con l'indirizzo IP client desiderato.
Quindi, modifica il file di configurazione di Memcached che si trova in /etc/memcached.conf
correndo nano
comando.
sudo nano /etc/memcached.conf
Il memcached.conf
il file di configurazione si aprirà con l'editor nano, cerca il -l 127.0.0.1
riga nella configurazione e sostituisci 127.0.0.1
con il tuo IP del server Memcached o in questo caso 192.168.0.5
.
Dopo la sostituzione premere ctrl+o
per scrivere nel file di configurazione e premere invio, premere ctrl+x
per uscire da nano.
Riavvia il server Memcached e ufw
firewall eseguendo il comando seguente.
sudo systemctl riavvia memcached ufw
Ora abbiamo finito con l'installazione e la configurazione del server Memcached su Ubuntu 20.04.
Connessione al server Memcached
Per utilizzare il server Memcached, dovrai installare un client specifico per la lingua. Fortunatamente, Memcached supporta molte lingue popolari.
Vediamo quindi come installare php
e pitone
client per Memcached.
PHP è il linguaggio di scripting lato server più popolare e Memcached è utilizzato principalmente dagli sviluppatori Web per migliorare le prestazioni del server delle app Web basate su PHP.
Per installare il supporto memcached in php, correre:
sudo apt install php-memcached
Anche Python ha diverse librerie che possono funzionare e interagire con il server Memcached come pymemcached
o python-memcached
.
Puoi installare memcached per python eseguendo i seguenti comandi pip:
pip install pymemcache
pip install python-memcached
In conclusione, abbiamo esaminato l'installazione, la configurazione e alcuni client specifici della lingua di Memcached in Ubuntu 20.04.
Per conoscere un uso più preciso e avanzato di Memcached, dai un'occhiata a Memcached Wiki.