Cara install Memcached di CentOS 6
Tutorial kali ini request dari mbak Shafira yaitu bagaimana cara install Memcached di CentOS 6 untuk VPSnya. Ya… saya turuti, pagi – pagi nunggu saatnya berangkat kerja sambil seruput kopi. Hehe. 😛 Memang tidak lama kok prosesnya, yakin sekali mencoba setelahnya minimal tahu harus ngapain.
Sedikit deskripsi dulu mengenai apa itu Memcached? Ini adalah paket aplikasi dimana cache data dari program yang mendukungnya akan disimpan dalam memori (RAM). Jadi selama kapasitas RAM anda mencukupi maka bisa dimaksimalkan penggunaannya. Kelebihannya adalah – misal PHP dan MySQL – akan mengambil cache halaman websitenya dari memori yang jauh lebih cepat dibandingkan dari harddisk. Tidak perlu ada delay gara – gara menunggu proses baca tulis harddisk yang masih mekanik menggunakan jarum. Bahkan ini bisa diskalakan secara horisontal karena d diakhir kata memcached itu untuk distributed, jadi bisa dibagi ke beberapa server sekaligus. Cocok buat HA (High-Availability) dan mengurangi beban server.
Ya, sudah cukup basa – basinya mari ke fokus pembahasan, yang saya gunakan adalah CentOS release 6.7 (Final) 32-bit. Nah… Memcached ini tidak ada di repositori standar, jadi kita harus menambahkan EPEL Repository dulu:
Untuk CentOS 6 32-bit
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
Untuk Centos 6 64-bit
wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
Kemudian install saja Memcached dan dependensinya:
yum install memcached
Ya, sudah selesai memang proses instalasinya. Tapi kita belum mensetting dan mengaktifkannya.
Sekarang kita akan mengedit konfigurasi memcached:
nano /etc/sysconfig/memcached
Kalau tidak ketemu ganti nama filenya dengan memcached.conf
.
Nah… ini adalah isi konfigurasi awal untuk pembelajaran dulu, setelah itu bisa anda utak – atik:
# Aktif di port 11211
PORT="11211"
# Dijalankan sebagai daemon memcached
USER="memcached"
# Maksimal koneksi bersamaan berjumlah 1024
MAXCONN="1024"
# Ukuran memori terpakai maksimal adalah 256MB, satuannya adalah Mega Byte kalau ingin diganti.
CACHESIZE="256"
#Setting alamat IP server Memcached, biasanya di localhost (127.0.0.1). Ini kalau tidak disetting maka bisa diakses umum dari port yang telah ditentukan.
OPTIONS="-l 127.0.0.1"
Saya berikan komentar supaya tidak lupa fungsinya apa. 😉
Sudah semua? Mari kita jalankan service Memcached:
service memcached start
Silahkan dicek lewat top
apakah sudah ada proses bernama memcached
, ini yang paling sederhana caranya.
Secara default memcached tidak dijalankan saat booting, jadi kalau anda merestart server ya harus diaktifkan manual lagi. Repot kan? Ya, kita tambahkan saja kalau harus ikut dipanggil saat masuk ke sistem operasi:
chkconfig --levels 235 memcached on
Masih belum selesai lho, sekarang kita perlu menambahkan dukungan aplikasi agar bisa memanfaatkan Memcached. Misal PHP maka perlu menginstall PECL baru:
yum install php-pecl-memcached
Selanjutnya edit php.ini
, cari Session
dan samakan:
[Session]
; Handler used to store/retrieve data.
; http://www.php.net/manual/en/session.configuration.php#ini.session.save-handler
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"
Nanti seluruh sesi PHP akan disimpan lewat memcached.
Akhirnya restart software web server anda, misal Apache:
service httpd restart
atau Nginx:
service nginx restart
Kalau ada aplikasi web yang mendukung langsung Memcached akan terdeteksi otomatis. Di WordPress anda harus menginstall plugin cache seperti W3 Total Cache.
Kalau ada pertanyaan atau koreksi silahkan diajukan di komentar. Dan saya telat berangkat kerja. Haha. 😀
Semoga bermanfaat. 😉
Tambahan
Untuk Apache mungkin akan ada pesan error:
Starting httpd: httpd: apr_sockaddr_info_get() failed for servernesia
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Silahkan edit httpd.conf
, kemudian cari dan modifikasi menjadi:
ServerName localhost
Hilangkan simbol komentar (#) diawal ServerName.
trims tutorialnya mas chandra,
untuk libmemcached nggak perlu di instal ya mas? apa ada aplikasi grafis untuk monitor memcached ini? trims.
Sama – sama mbak, saya juga butuh topik pembahasan kok. 🙂 Jadi pertanyaan atau permintaan yang masuk saya hargai, biar melatih otak juga. Hehe. 😀 Kalau disimpan sendiri nanti lupa soalnya. Blog ini awalnya dari dokumentasi pribadi di notepad, dan saya asal saja menyimpannya jadi selain tidak rapi ya tidak bisa dicari. 🙁
Untuk
libmemcached
itu dependensinya mbak, otomatis diinstall nanti dan tampaknya anda sudah sadar dari komentar yang nyusul. Hehe. 🙂Untuk melihat statistik penggunaan memcached bisa coba jalankan perintah berikut mbak:
Asumsinya memcached aktif di localhost dan masih menggunakan port defaultnya.
Nanti akan muncul balasan informasi seperti berikut:
Agak primitif memang tapi sudah mampu menjelaskan status memcached di servernya. Ada satu lagi sebenarnya, mungkin saya buatkan satu artikel khusus mengenai statistik memcached dan cara membacanya.
Kalau muncul pesan error
-bash: nc: command not found
maka langsung saja install paket aplikasi yang tidak ada:yum install nc
.lebih simpel dengan perintah
yum install php-pecl-memcached
😀 baru tahu dari tutorial mas chandra karena sebelumnya saya compile dan agak lama prosesnya :untuk
port 11211
nggak perlu masukiptables
ya? karena sebelumnya juga saya jalankan perintah ini :semuanya dapat dari hasil gogling tapi dari semuanya lebih simpel tutorial mas chandra 🙂
Ahaha saya orangnya malas mbak, kalau ada yang mudah ngapain susah – susah. 😛 Kalau compile dari source berarti ingin versi terbarunya, karena yang ada di repository terutama CentOS itu mengutamakan kestabilan bukan fitur, jadi versinya bisa lebih lama dari yang ada sekarang ini.
Oh iya, ada aturan iptablesnya. Sebenarnya tergantung aturan iptables juga, kalau tidak salah di CentOS hanya beberapa port penting yang dibuka secara default. Sisanya akan ditolak otomatis. Itu yang anda tambahkan maksudnya terima semua koneksi TCP ke port 11211 yang digunakan server memcached. Dan ini baru ada gunanya kalau anda ingin menghubungkan memcached dari luar servernya.
ups maaf ternyata sudah terinstal saat instal pecl nya 😀
mas, berhubung tentang performance server,tolong juga diulas
ngx_pagespeed
ya mas. makasih sebelumnya 🙂Boleh mbak, tapi saya juga masih belajaran. Dulu pernah tapi seperti biasa sudah berdebu. Haha. Saya saja gagal pas buat init scriptnya Nginx.
Akhirnya saya catat dulu masalah yang dialami pas menambahkan PageSpeed Module ke Nginx, dimulai dari init script nginx. Haha. Soalnya harus dibuat manual jika installnya dari source bukan dari repository. Kalau berkenan ikut menambahkan mbak, saya yakin milik saya bukan yang terbaik dan pasti bisa digunakan. 😀
Update 9 November 2015:
Silahkan dicek mbak tutorial PageSpeed Modulenya: https://servernesia.com/566/mempercepat-nginx-pagespeed-module/
mas chandra, rekues tentang redis cache dong.
trims sebelumnya.
Haha… pas baca – baca soal Memcached sempat melirik Redis juga mbak. Kok katanya bisa lebih baik performanya ya. Penasaran juga aslinya. 🙂
Spesifikasi stacknya standar Nginx ya mbak? Nanti malam coba saya lihat dan semoga bisa diujicoba dengan lancar.
iya mas karna info dari mas chandra memcached masih belum sepenuhnya support php 7 untuk centos jadi cari2 alternatif lainnya, yup LEMP stack 🙂
Astaga…. saya nyobanya di PHP 5.6 mbak: https://servernesia.com/888/cara-install-redis-centos-6/
Baru sadar, semoga ekstensi PHPnya sudah support PHP 7.0.
Edit:
Ternyata kalau ambil defaultnya dari repo masih belum. Tapi di GitHub sudah dinyatakan kompatibel untuk yang terbaru: https://github.com/phpredis/phpredis/tree/php7
Edit2:
Nanti saya lihat lagi, tampaknya saya salah paham. Kalau dari repo itu php binding dan yang saya referensikan diatas itu library phpnya. Sudah lelah tampaknya. Haha 🙂
Edit3:
Ternyata benar itu php bindingnya, sementara harus dicompile dari source tampaknya. Belum ketemu repository yang sudah ada versi terbarunya.
Bro nanya dong..
Stack ku CentOS 6.7 (VestaCP)
pas install
yum install php-pecl-memcached
ada msg error :
solusi gimana ya? sepertinya ini masalah di repo nya yah ?
Thanks 🙂
barusan bisa bro
ntah bener atau salah tapi jalan nih..
Thanks
Ga coba install yang versi repository PHPnya sama dengan PHP yang diinstallkan VestaCP mas? Tapi kalau berjalan normal ya abaikan saja
Sudah aktif dan berjalan semua kan mas? Tes dengan perintah ini:
Atau bisa pakai aplikasi web untuk monitornya seperti ini: https://servernesia.com/736/melihat-statistik-memcached/
Oh itu karena paket aplikasi PHP yang dibutuhkan
php-pecl-memcached
tidak ada mas dalam repository EPEL mas. Masalah dependensi ini. Tampaknya karena versi PHP yang diinstall VestaCP berbeda dan ditambah ruwet karena banyak versi PHP yang didapatkan yum dari berbagai repository yang aktif dalam CentOSnya.Solusinya ya instalasi persis versi PHP yang dibutuhkan, dan kalau dari pesan errornya yang diminta itu 5.3.
Kalau diinstal di OS Ubuntu 14.04 (VestaCP) ngikutin versi bawaan PHP 5.5.9 hampir sama konfigurasinya mas ?
Betul mas, kurang lebih sama cuma karena beda distro ya beda perintah untuk menginstallnya:
Mas chandra, apakah bisa dalam satu server jalankan multi memcached dengan beda port? Kalau bisa mohon dibuatkan tutorialnya. Trims sebelumnya 🙂
Bisa mbak.
Pada konfigurasi diatas tambahkan saja portnya, misal:
Kemudian jalankan perintah ini:
perlu juga dimasukin ke setingan php mas?
Loh iya, ketinggalan berarti. 😀
saya coba jalankan perintah di atas muncul notif ini mas:
Tambahkan parameter -u mbak. 🙂
tetap g bisa 🙁
ini perintah maksudnya apa mas? saya coba tanpa dua perintah di atas, memcached jalan normal dengan dua port.
Bisa digunakan mbak? Ya sekian kasusnya. 😀
Maksudnya pakai port dan user apa. Teorinya begitu.