Brad Fitzpatrick mengembangkan Memcached pada tahun 2003 untuk situs web LiveJournal sebagai sistem caching sumber terbuka yang kuat untuk meningkatkan kinerja aplikasi web dinamis dengan mengurangi beban basis data. Sejak itu, ini menjadi penting bagi banyak situs web dan aplikasi dengan lalu lintas tinggi. Sebelum kita menginstal Memcached di Debian 12 Bookworm, Debian 11 Bullseye, atau Debian 10 Buster, mari kita periksa beberapa poin penting tentang Memcached di bawah ini.
Fitur dan Manfaat Utama:
- Skalabilitas: Memcached, menangani jutaan operasi per detik, sangat ideal untuk aplikasi dan layanan web berskala besar.
- Caching Terdistribusi: Dengan arsitektur caching terdistribusi, Memcached memungkinkan penskalaan horizontal di beberapa server, sehingga memperluas kapasitas cache secara keseluruhan.
- Penyimpanan Dalam Memori: Sebagai penyimpan nilai kunci dalam memori, Memcached memastikan akses cepat ke data cache, sehingga secara signifikan mengurangi latensi dalam sistem penyimpanan berbasis disk.
- API sederhana: Memcached menyediakan API sederhana yang mendukung berbagai bahasa pemrograman, termasuk PHP, Python, Ruby, dan lainnya.
- Kedaluwarsa Cache: Sistem ini memungkinkan pengembang untuk mengatur waktu kedaluwarsa untuk data cache, sehingga memfasilitasi penghapusan otomatis data usang atau basi dari cache.
- Ringan: Dengan overhead CPU dan memori yang minimal, Memcached berjalan secara efisien di berbagai konfigurasi server tanpa menguras sumber daya sistem secara signifikan.
- Tipe Data Fleksibel: Memcached mengakomodasi berbagai tipe data, seperti string, integer, dan objek kompleks, menjadikannya serbaguna untuk beragam kasus penggunaan.
Panduan berikut akan memandu Anda melalui proses instalasi Memcached di Debian menggunakan dua metode: repositori Debian default untuk versi paling stabil atau mengunduh dan mengkompilasi biner terbaru bagi mereka yang lebih suka bekerja dengan versi terbaru.
Metode 1: Instal Memcached melalui Repositori APT Default
Di bagian ini, kami akan menginstal Memcached di sistem Debian Linux Anda menggunakan manajer paket APT. Ini melibatkan pembaruan paket sistem Anda dan menginstal Memcached dengan beberapa alat yang berguna.
Perbarui Sistem Debian Anda Sebelum Instalasi Memcached
Untuk memastikan bahwa Anda memiliki versi paket dan pembaruan keamanan terbaru, mulailah dengan memperbarui sistem Debian Anda. Jalankan perintah berikut:
sudo apt update && sudo apt upgrade
Perintah ini akan memperbarui daftar paket Anda dan memutakhirkan paket lama ke versi terbaru.
Instal alat Memcached dan Libmemcached
Debian menyertakan Memcached dalam repositori defaultnya, membuat instalasi menjadi sederhana. Untuk menginstal Memcached, jalankan perintah berikut:
sudo apt install memcached libmemcached-tools
Perintah ini menginstal Memcached dan libmemcached-tools
kemasan. Itu libmemcached-tools
paket menyediakan utilitas baris perintah tambahan yang memungkinkan lebih banyak interaksi dan kemampuan manajemen dengan Memcached.
Metode 2: Instal Memcached melalui sumber
Bagian ini mencakup instalasi Memcached pada sistem Debian Anda dengan mengkompilasinya dari kode sumber. Menginstal dari sumber dapat bermanfaat jika Anda ingin menggunakan Memcached versi terbaru atau menyesuaikan build untuk kebutuhan tertentu.
Unduh Sumber Memcached
Pertama, kunjungi Memcached halaman rilis terbaru untuk menemukan versi saat ini. Gunakan yang berikut ini wget
perintah untuk mendownloadnya langsung:
wget https://memcached.org/latest
Ekstrak arsip sumber Memcached
Selanjutnya, ekstrak kode sumber yang diunduh dengan menjalankan perintah berikut:
tar -xvf latest
Sebelum melanjutkan, navigasikan ke direktori yang diekstraksi. Nama direktori bergantung pada versi yang diunduh:
cd memcached-{place version number here}
Mengganti {version_number}
dengan nomor versi sebenarnya.
Instal Paket Awal yang Diperlukan untuk Mengkompilasi Memcached
Sebelum mengkompilasi Memcached, Anda perlu menginstal dependensi build yang diperlukan. Jalankan perintah berikut untuk menginstalnya:
sudo apt install build-essential libevent-dev gcc make libc6-dev
Paket yang diinstal memiliki tujuan berikut:
gcc
: Kompiler C terkenal untuk file sumber Memcached.make
: Mengarahkan kompilasi.libc6-dev
: Memberikan referensi ke perpustakaan GNU C dan file header.libevent-dev
: Berisi file pengembangan untuk pemberitahuan acara asinkron.
Konfigurasikan Instalasi
Gunakan --prefix=
parameter untuk mengatur direktori tempat biner dan perpustakaan Memcached akan diinstal:
./configure --prefix=/usr/local
Kompilasi Kode Sumber Memcached
Kompilasi kode sumber Memcached dengan make
memerintah:
make
Uji Memcached dengan mengonfirmasi versi saat ini:
./memcached --version
Instal Memcached melalui perintah 'make install'
Setelah proses kompilasi selesai, instal Memcached dengan menjalankan perintah berikut:
sudo make install
Perintah ini menginstal Memcached di sistem Anda, sehingga dapat diakses dari baris perintah. Untuk memastikan sistem mengenali perpustakaan baru, jalankan perintah berikut:
sudo ldconfig
Verifikasi Instalasi Memcached
Untuk memverifikasi bahwa Memcached berhasil diinstal, jalankan perintah berikut:
memcached -V
Perintah ini akan menampilkan versi Memcached yang terinstal, mengonfirmasi keberhasilan instalasi dari kode sumber.
Buat Layanan Systemd untuk Memcached
Saat Anda menginstal Memcached dari sumbernya, itu tidak secara otomatis membuat file layanan systemd. Untuk menjalankan Memcached sebagai layanan dan mengelolanya menggunakan systemctl
, Anda perlu membuat file layanan systemd khusus untuk Memcached. Ikuti langkah-langkah berikut untuk membuat dan mengaktifkan layanan:
Buat file baru bernama memcached.service
di /etc/systemd/system
direktori menggunakan editor teks pilihan Anda. Dalam contoh ini, kita akan menggunakan nano
:
sudo nano /etc/systemd/system/memcached.service
Tambahkan konten berikut ke memcached.service
mengajukan:
[Unit]
Description=Memcached Service
After=network.target
[Service]
Type=simple
User=memcache
Group=memcache
ExecStart=/usr/local/bin/memcached /etc/memcached.conf
Restart=always
[Install]
WantedBy=multi-user.target
Simpan file dan keluar dari editor teks.
Buat sebuah memcache
pengguna dan grup untuk menjalankan layanan dengan aman:
sudo useradd -r -s /sbin/nologin -U -M memcache
Muat ulang konfigurasi systemd untuk mengenali file layanan baru:
sudo systemctl daemon-reload
Terakhir, mulai layanan:
sudo systemctl enable memcached --now
Mengelola Status Layanan Memcached
Bagian ini akan membahas pengelolaan layanan Memcached di sistem Debian Anda. Ini termasuk memeriksa status layanan, memulai dan menghentikan layanan, dan mengonfigurasinya agar dijalankan saat boot sistem.
Periksa Status Layanan Memcached
Secara default, Memcached seharusnya berjalan setelah instalasi. Untuk memverifikasi statusnya, gunakan systemctl
perintah sebagai berikut:
systemctl status memcached
Perintah ini akan menampilkan status layanan Memcached saat ini.
Mulai Layanan Memcached
Jika Memcached tidak berjalan, Anda dapat memulai layanan dengan perintah berikut:
sudo systemctl start memcached
Aktifkan Memcached pada Boot Sistem
Untuk memastikan bahwa layanan Memcached dimulai secara otomatis saat sistem Anda boot, gunakan perintah berikut:
sudo systemctl enable memcached
Hentikan Layanan Memcached
Jika Anda perlu menghentikan layanan Memcached, gunakan perintah ini:
sudo systemctl stop memcached
Nonaktifkan Memcached pada Boot Sistem
Untuk mencegah layanan Memcached dimulai secara otomatis saat boot sistem, jalankan perintah berikut:
sudo systemctl disable memcached
Mulai ulang Layanan Memcached
Jika Anda perlu memulai ulang layanan Memcached, misalnya setelah melakukan perubahan konfigurasi, gunakan perintah ini:
sudo systemctl restart memcached
Pastikan Memcached Mendengarkan di Port Default
Terakhir, verifikasi bahwa Memcached secara aktif mendengarkan di localhost menggunakan port default 11211
. Untuk mengonfirmasi hal ini, jalankan perintah berikut:
ps -ef | grep memcached
Outputnya akan menampilkan baris yang menunjukkan bahwa Memcached sedang berjalan dan mendengarkan pada port yang ditentukan, serupa dengan berikut ini:
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
Konfigurasikan Tip Memcached
Bagian ini akan membahas konfigurasi pengaturan Memcached dengan mengedit memcached.conf
mengajukan. Kami akan membahas penyesuaian alamat IP mendengarkan, menonaktifkan UDP, dan mengubah alokasi memori default.
Buka File Konfigurasi Memcached
Buka file konfigurasi Memcached yang terletak di /etc/memcached.conf
menggunakan editor teks, seperti nano
:
sudo nano /etc/memcached.conf
Pengguna yang mengkompilasi Memcached dari sumber harus membuat ini ketika Anda pertama kali membukanya; file akan kosong dibandingkan dengan metode APT; Anda dapat menyalin ini untuk memulai penyesuaian:
# Example memcached.conf file
# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64
# Default port is 11211
-p 11211
# Run the daemon as a background process
-d
# Use syslog logging
-s
# Enable verbose logging
-vv
# Set the maximum number of simultaneous connections
-c 1024
Sesuaikan Alamat IP Mendengarkan
Secara default, Memcached mendengarkan alamat IP 127.0.0.1. Periksa parameter -l di file konfigurasi dan pastikan parameter tersebut disetel ke alamat IP yang benar. Jika Anda perlu mengubah alamat IP, ganti 127.0.0.1
dengan alamat IP baru:
-l 127.0.0.1
Nonaktifkan UDP (Opsional)
Jika Anda tidak memerlukan dukungan UDP, disarankan untuk menonaktifkannya. Untuk menonaktifkan UDP, tambahkan baris berikut ke file konfigurasi:
-U 0
Konfigurasikan Alokasi Memori
Alokasi memori default untuk Memcached adalah 64MB, yang mungkin tidak cukup untuk situs web yang lebih besar. Pertimbangkan untuk menyesuaikan alokasi memori ke nilai yang lebih tinggi untuk memaksimalkan Memcached.
Untuk mengatur alokasi memori, temukan -m
parameter di file konfigurasi dan ganti nilai default dengan jumlah yang diinginkan (dalam MB). Misalnya, untuk mengalokasikan memori 2 GB, tetapkan nilainya 2000
:
-m 2000
Sesuaikan pengaturan ini berdasarkan memori dan persyaratan server Anda yang tersedia.
Simpan dan Mulai Ulang Memcached
Setelah melakukan perubahan yang diperlukan, simpan file konfigurasi dengan menekan CTRL+O
, diikuti oleh Y
, kemudian CTRL+X
untuk keluar dari editor teks. Terakhir, mulai ulang layanan Memcached agar perubahan diterapkan:
sudo systemctl restart memcached
Contoh Konfigurasi Memcached Tambahan
Selain opsi konfigurasi yang dibahas sebelumnya, ada beberapa pengaturan lain yang dapat Anda sesuaikan untuk menyempurnakan Memcached sesuai kebutuhan Anda. Berikut adalah beberapa contoh, beserta demonstrasi singkatnya:
Tentukan pengguna dan grup
Memcached berjalan di bawah pengguna dan grup tertentu yang ditentukan menggunakan -u
parameter. Misalnya, untuk menjalankan Memcached sebagai memcache
pengguna, tambahkan baris berikut ke file konfigurasi:
-u memcache
Aktifkan halaman memori besar
Mengaktifkan fitur ini dapat meningkatkan kinerja jika sistem Anda mendukung halaman memori besar. Untuk mengaktifkan halaman memori besar, temukan -L
parameter dan batalkan komentarnya (hapus #
di awal baris):
-L
Konfigurasikan ukuran item maksimum
Memcached memiliki ukuran item maksimum default sebesar 1 MB. Untuk menambah ukuran item maksimum, gunakan -I
parameter diikuti dengan ukuran yang diinginkan. Misalnya, untuk mengatur ukuran item maksimum menjadi 5MB, tambahkan baris berikut ke file konfigurasi:
-I 5m
Tetapkan jumlah maksimum utas
Memcached menggunakan empat thread secara default. Anda dapat menggunakan parameter ini untuk menambah atau mengurangi jumlah thread sesuai dengan kemampuan dan beban kerja server Anda. Misalnya, untuk mengatur jumlah thread menjadi 8, tambahkan baris berikut:
-t 8
Konfigurasikan batas waktu menganggur
Memcached secara otomatis menutup koneksi yang menganggur setelah jangka waktu tertentu tidak aktif. Untuk mengubah batas waktu idle, gunakan -o
parameter diikuti oleh idle_timeout
dan jumlah detik yang diinginkan. Misalnya, untuk menyetel batas waktu idle menjadi 600 detik (10 menit), tambahkan baris berikut:
-o idle_timeout=600
Aktifkan autentikasi SASL
Anda dapat mengaktifkan dukungan SASL (Otentikasi Sederhana dan Lapisan Keamanan) jika Anda memerlukan otentikasi untuk mengakses server Memcached Anda. Untuk mengaktifkan SASL, temukan -S
parameter dan batalkan komentarnya (hapus #
di awal baris):
-S
Ingatlah untuk selalu memulai ulang layanan Memcached setelah melakukan perubahan pada file konfigurasi:
sudo systemctl restart memcached
Instal UFW Firewall untuk Memcached
Untuk memastikan keamanan instans Memcached Anda, penting untuk mengonfigurasi aturan firewall Anda dengan benar. Bagian ini akan membahas cara menginstal dan mengkonfigurasi Firewall Tidak Rumit (UFW) untuk mengamankan server Memcached Anda.
Periksa apakah UFW diinstal
Pertama, mari verifikasi apakah UFW sudah terinstal di sistem Debian Anda:
sudo ufw --version
Jika UFW diinstal, Anda akan melihat nomor versinya di output. Jika tidak, Anda harus menginstalnya.
Instal UFW di Debian untuk Memcached
Untuk menginstal UFW di sistem Debian Anda, jalankan perintah berikut:
sudo apt install ufw
Setelah instalasi selesai, aktifkan UFW dengan perintah berikut:
sudo ufw enable
Konfigurasikan aturan UFW untuk Memcached
Sekarang setelah UFW diinstal dan diaktifkan, Anda harus membuat aturan izinkan pada port TCP 11211. Aturan yang Anda buat akan bergantung pada instalasi dan persyaratan Anda, apakah menggunakan koneksi jaringan IP tunggal atau bekerja dengan beberapa instance dalam jaringan cluster.
Contoh koneksi jaringan IP tunggal
Izinkan akses ke Memcached dari alamat IP tertentu:
sudo ufw allow proto tcp from <ip_address> to any port 11211
Koneksi jaringan IP cluster dengan beberapa contoh contoh
Izinkan akses ke Memcached dari subnet alamat IP:
sudo ufw allow proto tcp from <ip_address>/24 to any port 11211
Perhatikan bahwa aturan UFW kedua adalah aturan subnet. Pastikan jaringan internal aman dan dapat dipercaya sebelum mengizinkan akses.
Langkah 4: Verifikasi aturan UFW
Setelah menyiapkan aturan yang sesuai, verifikasi bahwa aturan tersebut dikonfigurasi dengan benar dengan mencantumkan aturan UFW saat ini:
sudo ufw status
Outputnya harus menampilkan aturan yang Anda konfigurasikan, memastikan instans Memcached Anda diamankan dengan UFW.
Instal Perpustakaan Memcached
Memcached menawarkan ekstensi untuk berbagai bahasa pemrograman, tetapi paling sering digunakan dengan PHP. Bagian ini akan memandu Anda dalam menginstal pustaka Memcached untuk PHP, Python, dan Perl serta mengonfigurasi server web Memcached untuk Apache dan Nginx.
Instal Perpustakaan PHP untuk Memcached
Untuk menginstal perpustakaan PHP untuk Memcached, jalankan perintah berikut:
sudo apt install php-memcached libapache2-mod-php php php-cli
Konfigurasikan Memcached untuk Server HTTP Apache
Jika Anda menggunakan Apache HTTP Server, aktifkan modul Memcached dengan menjalankan perintah berikut:
sudo phpenmod memcached && sudo systemctl restart apache2
Konfigurasikan Memcached untuk Server HTTP Nginx
Dukungan memcached akan diaktifkan secara default dalam blok konfigurasi PHP Anda setelah perpustakaan PHP diinstal untuk pengguna Nginx.
Di bawah ini adalah contoh blok server nginx sederhana:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Instal Perpustakaan Python untuk Memcached
Untuk menginstal dukungan Python untuk Memcached, jalankan perintah berikut:
sudo apt install python3-pymemcache
Instal Perpustakaan Perl untuk Memcached
Untuk menginstal dukungan Perl untuk Memcached, jalankan perintah berikut:
sudo apt install libcache-memcached-libmemcached-perl
Akses Memcached dari Baris Perintah
Memcached dapat dipantau dan dikelola melalui berbagai perangkat lunak dan antarmuka pengguna web. Namun, berinteraksi langsung dengan Memcached menggunakan baris perintah seringkali merupakan metode paling mudah untuk memeriksa kinerjanya dan mengelola kontennya.
Pertama, sambungkan ke layanan Memcached Anda menggunakan telnet:
telnet localhost 11211
Contoh keluaran:
Mencoba 127.0.0.1... Terhubung ke localhost. Karakter pelariannya adalah '^]'.
Selanjutnya, Anda bisa mendapatkan gambaran umum layanan Memcached Anda dengan perintah berikut:
stats
Perintah ini akan mengembalikan berbagai statistik tentang instans Memcached Anda, seperti waktu aktif, jumlah item dalam cache, dan jumlah koneksi klien.
Anda dapat menyempurnakan analisis Anda dengan memeriksa lempengan Memcached (partisi memori). Misalnya, Anda dapat membuat daftar lempengan dalam instans yang terhubung dengan:
stats slabs
Dan dapatkan daftar lempengan, termasuk jumlah item yang disimpan dalam setiap lempengan, menggunakan:
stats items
Untuk mengakses dan memanipulasi data yang disimpan di Memcached, Anda dapat menggunakan cachedump
perintah untuk membuat daftar kunci. Untuk mencantumkan semua item dalam lempengan tertentu, jalankan perintah berikut:
stats cachedump [slab ID] [number of items, 0 for all items]
Misalnya:
stats cachedump 1 0
Contoh keluaran:
ITEM testkey [9 b; 1296857316 s] SELESAI
Dalam contoh ini, lempengan 1 berisi satu item dengan kunci “testkey”. Untuk mengambil nilai item ini, gunakan get
memerintah:
get testkey
Contoh keluaran:
VALUE kunci tes 0 9 data pengujian AKHIR
Terakhir, untuk menghapus item yang di-cache, seperti “testkey”, gunakan perintah berikut:
delete testkey
Contoh keluaran:
DIHAPUS
Kesimpulan
Kesimpulannya, menginstal dan mengkonfigurasi Memcached di Debian Linux dapat meningkatkan kinerja aplikasi web Anda secara signifikan dengan menyediakan sistem caching yang cepat, efisien, dan mudah digunakan. Dengan mengikuti langkah-langkah yang diuraikan dalam panduan ini, Anda berhasil menyiapkan Memcached, mengonfigurasinya dengan server web pilihan Anda, dan mengamankannya menggunakan UFW. Dengan konfigurasi dan manajemen yang tepat, Memcached dapat menjadi penting dalam mengoptimalkan aplikasi Anda dan memberikan pengalaman pengguna yang lebih baik.