Memcached digunakan untuk mempercepat situs web berbasis database dinamis dengan menyimpan data dan objek dalam RAM. Ini mengurangi berapa kali sumber data eksternal harus dibaca, yang menurunkan overhead dan mempercepat waktu respons. Perangkat lunak cache memori adalah proyek sumber terbuka gratis yang dapat digunakan siapa saja.
Di akhir panduan, Anda akan mengetahui cara menginstal dan mengonfigurasi Memcached di Debian 11 Bullseye sistem operasi.
Prasyarat
- OS yang Disarankan: Debian 11 Bullseye
- Akun pengguna: Akun pengguna dengan hak istimewa sudo atau akses root (perintah su) .
Memperbarui Sistem Operasi
Perbarui Debian 11 . Anda sistem operasi untuk memastikan semua paket yang ada mutakhir:
sudo apt update && sudo apt upgrade
Akses Root atau Sudo
Secara default, ketika Anda membuat akun Anda saat memulai dengan Debian dibandingkan dengan distribusi lain, itu tidak secara otomatis menerima status sudoers. Anda harus memiliki akses ke sandi root untuk menggunakan perintah su atau kunjungi tutorial kami tentang Cara Menambahkan Pengguna ke Sudoers di Debian.
Instal Memcached
Secara default, Debian 11 memiliki Memcached di repositorinya. Untuk menginstal Memcached, masukkan perintah berikut:
sudo apt install memcached libmemcached-tools
Contoh keluaran:
Ketik Y, lalu tekan ENTER KEY untuk melanjutkan penginstalan.
Perhatikan, opsi pemasangan kedua, “libmemcached-tools ” package, menyediakan perintah tambahan untuk menghadirkan interaksi ekstra dan kemampuan mengeksekusi ke Memcached.
Selanjutnya, verifikasi Memcached telah diinstal dengan benar dengan memverifikasi menggunakan perintah kebijakan apt-cache :
sudo apt-cache policy memcached
Contoh keluaran:
Memcached harus diaktifkan secara default. Untuk memverifikasi ini, gunakan perintah status systemctl sebagai berikut:
systemctl status memcached
Contoh keluaran:
Jika layanan belum diaktifkan, mulai Memcached menggunakan perintah berikut:
sudo systemctl start memcached
Perintah berguna lainnya untuk mengelola layanan Memcached adalah sebagai berikut:
Untuk mengaktifkan layanan Memcached pada boot sistem:
sudo systemctl enable Memcached
Untuk menghentikan layanan Memcached:
sudo systemctl stop memcached
Untuk menonaktifkan layanan Memcached pada boot sistem:
sudo systemctl disable memcached
Untuk memulai ulang layanan Memcached:
sudo systemctl restart memcached
Selanjutnya, verifikasi Memcached secara aktif mendengarkan localhost pada port 11211 default . Untuk mengkonfirmasi jenis ini, berikut ini:
ps -ef | grep memcached
Contoh keluaran:
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
Konfigurasi Memcached
Memcached harus mendengarkan 127.0.0.1 . Selanjutnya, buka pengaturan default di file konfigurasi yang terletak di “/etc/memcached.conf “.
sudo nano /etc/memcached.conf
Sekarang gulir ke bawah dan temukan baris berikut dan centang “-l” parameter yang ada. Biarkan sebagai default kecuali Anda memiliki IP internal di jaringan lokal atau IP eksternal dari luar; Anda harus mengubah alamat IP default dari 127.0.0.1 ke alamat IP baru.
-l 127.0.0.1
Disarankan untuk menonaktifkan UDP. Kecuali Anda memerlukan fungsi ini untuk diaktifkan, tambahkan baris berikut untuk menonaktifkannya.
-U 0
Sebelum Anda selesai, disarankan untuk mengubah alokasi memori 64MB default karena ini tidak banyak untuk situs web yang lebih besar, dan Anda tidak akan melihat banyak manfaat menggunakan Memcached.
Anda perlu mengatur ini ke sesuatu yang masuk akal untuk server Anda. Jika Anda memiliki 3 hingga 6 GB RAM yang jarang digunakan, tambahkan ke 1GB atau 2GB. Ini adalah pengaturan yang harus Anda putuskan yang berjalan paling baik untuk server Anda. Server panduan berjalan pada 8GB, jadi kami menyesuaikan cache kami menjadi 2GB sebagai contoh saja.
-m 2000
Sekarang simpan file CTRL+O dan tekan “Y”, lalu CTRL+X untuk keluar dan memulai ulang instance Memcached Anda.
sudo systemctl restart memcached
Opsional – Izinkan Aturan UFW Memcached
Jika Anda telah menginstal UFW, Anda perlu membuat aturan izin UFW di port TCP 11211 . Tergantung pada instalasi dan kebutuhan Anda jika menggunakan jaringan tunggal atau cluster, beberapa contoh di bawah ini:
Contoh koneksi jaringan IP tunggal:
sudo ufw allow proto tcp from <ip address> to any port 11211
Koneksi jaringan IP cluster dengan banyak contoh contoh:
sudo ufw allow proto tcp from <ip address>/24 to any port 11211
Catatan, aturan UFW kedua adalah aturan subnet. Catatan, pastikan jaringan internal aman dan tepercaya sebelum mengizinkannya.
Instal Perpustakaan PHP Memcached
Memcached hadir dengan berbagai ekstensi untuk bahasa pemrograman, tetapi terutama digunakan untuk PHP. Untuk menginstal pustaka PHP, masukkan yang berikut ini.
sudo apt install php-memcached apache2 libapache2-mod-php php php-cli php-memcached php-memcached
Server HTTP Apache
Pengguna Apache dapat mengeksekusi kode berikut untuk mengaktifkan Memcached di sistem mereka.
phpenmod memcached && sudo service apache2 restart
Server HTTP Nginx
Memcached untuk Nginx akan diaktifkan di blok PHP Anda secara default setelah diinstal.
Instal Pustaka Tambahan
Anda dapat menginstal dukungan Python dan atau Perl dengan menjalankan perintah berikut.
Dukungan Python:
sudo apt install python3-pymemcache
Dukungan Perl:
sudo apt install libcache-memcached-libmemcached-perl
Mengakses Memcached dari Command Line
Statistik memcached dapat dikumpulkan dengan banyak perangkat lunak tambahan dan UI WEB yang bekerja sama dengannya. Namun, cara yang lebih baik untuk memeriksanya adalah berinteraksi dengan Memcached secara langsung menggunakan baris perintah.
Pertama, TELNET ke layanan Anda:
telnet localhost 11211
Contoh keluaran:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Selanjutnya, Anda bisa mendapatkan gambaran umum tentang layanan Memcached Anda dengan menggunakan perintah berikut:
stats
Contoh keluaran:
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
Seperti di atas, ini menunjukkan beberapa hal penting yang mungkin ingin Anda lihat, seperti waktu aktif, jumlah item dalam cache, dan jumlah koneksi klien ke instance
Anda dapat mempersempit pencarian dengan melihat ke dalam memori Memcached slab (partisi) yang berbeda untuk mengembalikan hasil.
Contoh di bawah ini:
Buat daftar slab dalam instance yang terhubung:
stats slabs
Daftar lempengan yang mencakup jumlah item yang disimpan dalam setiap lempengan :
stats items
Selanjutnya, Anda dapat mengakses dan menghapus data menggunakan perintah cached untuk membuat daftar kunci.
Pertama, jalankan perintah cachedump :
stats cachedump [slab ID] [number of items, 0 for all items]
Contoh dalam tindakan:
stats cachedump 1 0
Contoh keluaran:
ITEM testkey [9 b; 1296857316 s]
END
Seperti di atas, SLAB 1 memiliki satu item dengan kunci “testkey.” Untuk mendapatkan nilai sebenarnya, Anda dapat menggunakan “dapatkan kunci” perintah sebagai berikut:
get testkey
Contoh keluaran:
VALUE testkey 0 9
test data
END
Terakhir, untuk menghapus item yang di-cache, dalam hal ini, “testkey” gunakan perintah berikut:
delete testkey
Contoh keluaran:
DELETED