Memcached se používá k urychlení dynamických databází řízených webových stránek ukládáním dat a objektů do mezipaměti RAM. To snižuje počet případů, kdy je nutné číst externí zdroj dat, což snižuje režii a zrychluje dobu odezvy. Software pro ukládání do mezipaměti je bezplatný projekt s otevřeným zdrojovým kódem, který může používat každý.
Na konci průvodce budete vědět, jak nainstalovat a nakonfigurovat Memcached na vašem Debian 11 Bullseye operační systém.
Předpoklady
- Doporučený operační systém: Debian 11 Bullseye
- Uživatelský účet: Uživatelský účet s právy sudo nebo přístup root (příkaz su) .
Aktualizace operačního systému
Aktualizujte svůj Debian 11 operační systém, abyste se ujistili, že všechny existující balíčky jsou aktuální:
sudo apt update && sudo apt upgrade
Root nebo Sudo Access
Ve výchozím nastavení, když vytvoříte svůj účet při spuštění s Debianem v porovnání s jinými distribucemi, automaticky nezíská status sudoers. Musíte mít přístup k heslu uživatele root použijte příkaz su nebo navštivte náš tutoriál Jak přidat uživatele do Sudoers na Debianu.
Nainstalovat Memcached
Ve výchozím nastavení má Debian 11 ve svých repozitářích Memcached. Chcete-li nainstalovat Memcached, zadejte následující příkaz:
sudo apt install memcached libmemcached-tools
Příklad výstupu:
Zadejte Y, poté stiskněte KLÁVESU ENTER pokračujte v instalaci.
Všimněte si, že druhá možnost instalace, „libmemcached-tools “, poskytuje další příkazy, které do Memcached přinesou extra interakci a spouštění schopností.
Dále ověřte, zda byl Memcached správně nainstalován, ověřením pomocí příkazu zásad apt-cache :
sudo apt-cache policy memcached
Příklad výstupu:
Memcached by měl být ve výchozím nastavení aktivován. Chcete-li to ověřit, použijte příkaz systemctl status takto:
systemctl status memcached
Příklad výstupu:
Pokud služba nebyla aktivována, spusťte Memcached pomocí následujícího příkazu:
sudo systemctl start memcached
Další užitečné příkazy pro správu služby Memcached jsou následující:
Povolení služby Memcached při spouštění systému:
sudo systemctl enable Memcached
Zastavení služby Memcached:
sudo systemctl stop memcached
Zakázání služby Memcached při spouštění systému:
sudo systemctl disable memcached
Restartování služby Memcached:
sudo systemctl restart memcached
Dále ověřte, zda Memcached aktivně naslouchá localhost na výchozím portu 11211 . Chcete-li tento typ potvrdit, postupujte takto:
ps -ef | grep memcached
Příklad výstupu:
memcache 5934 1 0 09:36 ? 00:00:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
root 6591 3653 0 09:55 pts/0 00:00:00 grep memcached
Konfigurace Memcached
Memcached musí poslouchat 127.0.0.1 . Dále otevřete výchozí nastavení v konfiguračním souboru umístěném na „/etc/memcached.conf “.
sudo nano /etc/memcached.conf
Nyní přejděte dolů a najděte následující řádek a zaškrtněte “-l“ parametr, který existuje. Ponechte jako výchozí, pokud nemáte interní IP v místní síti nebo externí IP zvenčí; musíte upravit výchozí IP adresu z 127.0.0.1 na novou IP adresu.
-l 127.0.0.1
Doporučuje se vypnout UDP. Pokud nevyžadujete, aby byla tato funkce povolena, přidejte následující řádek, abyste ji zakázali.
-U 0
Než skončíte, doporučujeme změnit výchozí přidělení paměti 64 MB, protože to není mnoho pro větší weby a s použitím Memcached nezaznamenáte mnoho výhod.
Musíte to nastavit na něco rozumného pro váš server. Pokud máte 3 až 6 GB málo využívané paměti RAM, dejte ji na 1 GB nebo 2 GB. Toto je nastavení, o kterém se musíte rozhodnout, aby fungovalo nejlépe pro váš server. Server průvodce běží na 8 GB, takže jsme naši mezipaměť upravili pouze jako příklad na 2 GB.
-m 2000
Nyní soubor uložte CTRL+O a stiskněte „Y,“ poté CTRL+X ukončete a restartujte instanci Memcached.
sudo systemctl restart memcached
Volitelné – Povolit pravidla UFW v Memcached
Pokud máte nainstalovaný UFW, musíte vytvořit pravidla povolení UFW na portu TCP 11211 . V závislosti na vaší instalaci a požadavcích, pokud používáte singulární nebo v klastrové síti, jsou některé příklady níže:
Příklad síťového připojení singulární IP:
sudo ufw allow proto tcp from <ip address> to any port 11211
Příklad síťového připojení clusteru IP s mnoha instancemi:
sudo ufw allow proto tcp from <ip address>/24 to any port 11211
Všimněte si, že druhé pravidlo UFW je pravidlo podsítě. Poznámka:Než to povolíte, ujistěte se, že je interní síť bezpečná a důvěryhodná.
Nainstalujte knihovny PHP Memcached
Memcached přichází s různými rozšířeními pro programovací jazyky, ale primárně se používá pro PHP. Chcete-li nainstalovat knihovnu PHP, zadejte následující.
sudo apt install php-memcached apache2 libapache2-mod-php php php-cli php-memcached php-memcached
Apache HTTP Server
Uživatelé Apache mohou spustit následující kód, aby povolili Memcached ve svém systému.
phpenmod memcached && sudo service apache2 restart
Nginx HTTP Server
Po instalaci bude Memcached pro Nginx ve vašem bloku PHP ve výchozím nastavení povolen.
Instalovat další knihovny
Podporu Pythonu a/nebo Perlu můžete nainstalovat spuštěním následujících příkazů.
Podpora Pythonu:
sudo apt install python3-pymemcache
Podpora Perlu:
sudo apt install libcache-memcached-libmemcached-perl
Přístup k Memcached z příkazového řádku
Statistiky Memcached lze shromažďovat pomocí mnohem dalšího softwaru a webového uživatelského rozhraní, se kterými funguje ve spojení. Lepším způsobem kontroly je však interakce s Memcached přímo pomocí příkazového řádku.
Nejprve TELNET do vaší služby:
telnet localhost 11211
Příklad výstupu:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Dále můžete získat přehled o své službě Memcached pomocí následujícího příkazu:
stats
Příklad výstupu:
STAT pid 5934
STAT uptime 1275
STAT time 1631930242
STAT version 1.6.9
STAT libevent 2.1.12-stable
STAT pointer_size 64
STAT rusage_user 0.113635
STAT rusage_system 0.000000
STAT max_connections 1024
STAT curr_connections 1
STAT total_connections 2
STAT rejected_connections 0
STAT connection_structures 2
STAT response_obj_oom 0
STAT response_obj_count 1
STAT response_obj_bytes 16384
STAT read_buf_count 2
STAT read_buf_bytes 32768
STAT read_buf_bytes_free 0
STAT read_buf_oom 0
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT cmd_meta 0
STAT get_hits 0
STAT get_misses 0
STAT get_expired 0
STAT get_flushed 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 7
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT slab_reassign_rescues 0
STAT slab_reassign_chunk_rescues 0
STAT slab_reassign_evictions_nomem 0
STAT slab_reassign_inline_reclaim 0
STAT slab_reassign_busy_items 0
STAT slab_reassign_busy_deletes 0
STAT slab_reassign_running 0
STAT slabs_moved 0
STAT lru_crawler_running 0
STAT lru_crawler_starts 6
STAT lru_maintainer_juggles 1325
STAT malloc_fails 0
STAT log_worker_dropped 0
STAT log_worker_written 0
STAT log_watcher_skipped 0
STAT log_watcher_sent 0
STAT unexpected_napi_ids 0
STAT round_robin_fallback 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT slab_global_page_pool 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evicted_active 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
STAT moves_to_cold 0
STAT moves_to_warm 0
STAT moves_within_lru 0
STAT direct_reclaims 0
STAT lru_bumps_dropped 0
END
Jak je uvedeno výše, toto ukazuje některé důležité věci, které byste mohli chtít vidět, jako je doba provozuschopnosti, počet položek v mezipaměti a počet klientských připojení k instanci
Vyhledávání můžete upřesnit tak, že se podíváte do různých slabů (oddílů) paměti Memcached a vrátíte výsledky.
Níže uvedené příklady:
Seznam desek v připojené instanci:
stats slabs
Seznam slabů, který obsahuje počet položek uložených v každé desce :
stats items
Dále můžete přistupovat k datům a mazat je pomocí příkazu cachedump k seznamu klíčů.
Nejprve spusťte příkaz cachedump :
stats cachedump [slab ID] [number of items, 0 for all items]
Příklad v akci:
stats cachedump 1 0
Příklad výstupu:
ITEM testkey [9 b; 1296857316 s]
END
Stejně jako výše, SLAB 1 má jednu položku s klíčem “testkey.” Chcete-li získat skutečnou hodnotu, můžete použít klíč „získat“ příkaz takto:
get testkey
Příklad výstupu:
VALUE testkey 0 9
test data
END
A konečně, chcete-li odstranit položku z mezipaměti, v tomto případě “testkey“ použijte následující příkaz:
delete testkey
Příklad výstupu:
DELETED