Penggunaan Memcached dengan PHP

Aplikasi web yang sangat dinamis tentunya akan memperlambat kinerja web itu sendiri, karena semakin dinamisnya sebuah aplikasi maka semakin banyak juga data yang akan kita load dari database. Untuk menyiasatinya maka kita dapat menggunakan memcached, setahun yang lalu saya pernah menulis article tentang Memcached namun karena hilangnya data saat migrasi server maka pada kesempatan article kali ini saya ingin mengulas ulang tentang penggunaan memcached dengan PHP
Apakah itu Memcached?
Memcached adalah sebuah technologi yang digunakan sebagai suatu sistem penyimpanan dan pendistribusian data didalam memory server (RAM). Memcached pertama kali dikembangkan oleh Brad Fitzpatrick untuk LiveJournal pada tahun 2003, saat ini memcached merupakan project yang open source karena itu kita dapat menggunakan dan menerapkannya pada aplikasi web kita secara gratis. Dengan penggunaan memcached kita bisa mempercepat aplikasi karena dengan load data melalui memory (Memcached) maka otomatis beban pengambilan data dari database akan hilang.
Saat ini memcached sudah banyak digunakan oleh situs-situs besar diantaranya :
- LiveJournal
- Wikipedia
- Flickr
- Bebo
- Typepad
- Yellowbot
- Youtube
- Digg
- WordPress.com
- Craigslist
- Mixi
Konsep penyimpanan dan pendistribusian data dengan metode konvensional dari database tanpa menggunakan memcache dapat anda lihat pada gambar di bawah :

Konsep penyimpanan dan pendistribusian data dengan Memcached
Pada awal client melakukan request data maka aplikasi melakukan akses terhadap database lalu aplikasi melakukan penyimpanan data yang telah di ambil dari database kedalam cluster memory server
Konsep penyimpanan dan pendistribusian pada awal request dapat anda lihat pada gambar di bawah :

Request selanjutnya aplikasi tidak lagi melakukan load dari database melainkan langsung dari memory server :

Dengan technology ini maka akses dan kinerja terhadap database akan menjadi ringan, sehingga aplikasi kita memiliki ferforma tinggi
Instalasi Memcached
Saat ini Memcached (php_memcache.dll) dapat di instalasi pada operating system linux dan windows. Petunjuk instalasi memcached dan sumber downloadnya bisa anda dapatkan di link berikut:
- Installing memcached on amazon linux ami.
- Installing memcached on Windows.
- install Memcached on Xampp on Windows 7
- Memcached for PHP 5.3 on Windows 7.
penggunaan Memcached dengan PHP
<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$key = md5('Key Name'); // Nama unique key yang akan disimpan (cache) di cluster memory
$cache_result = array();
$cache_result = $memcache->get($key); // nama object Memcached
if($cache_result){
// Jika request kedua (sudah di cache di awal)
$result=$cache_result;
}else{
// Jika request pertama ambil data dari database lalu distribusikan di memory server
include('connection.php'); // koneksi database
$q=mysql_query("select judul, isi, link from berita order by id desc");
while($r=mysql_fetch_array($q))
$result[]=$r; // penyimpanan hasil query didalam array
$memcache->set($key, $result, MEMCACHE_COMPRESSED, 3600000); // disimpan 3600000 detik atau 1 jam dengan nama key $key
}
//Menampilkan data
foreach($result as $r){
echo "<h3><a href='$r[link]'>$r[judul]</a></h3>
<p>". substr($r[isi],0,200) ."...<a href='$r[link]'>selengkapnya</a></p>";
}
?>
Pada fungsi diatas, pertama kali yang kita lakukan adalah memanggil object memcached lalu mengecek koneksi dari memcached. selanjutnya kita melakukan pengecekan apabila request pertama kita mengambil data dari database lalu mendistribusikannya pada memory server, namun apabila request kedua kita langsung mengambil datanya dari memory.
Lebih lanjut lagi tentang memcached dengan PHP berikut fungsinya yang lain silahkan buka di situs PHP.net
Semoga bermanfaat
Anda juga mungkin suka dengan artikel ini :
- Penggunaan Function pada PHP (PHP Function)
- Control Flow dalam PHP (if - else, if - elseif - else, switch - case, for, while, break, continue, return, exit)
- Penggunaan Class dan Object pada PHP
- Penggunaan Array dalam PHP
- Pengantar dan Dasar PHP


Makasih buat infonya gan
mantabh broo... nambah ilmu aku :D
Kunjungan lagi gan, ilmu yang sangat bermanfaat..semoga tambah sukses.
denger-denger facebook pake Memcached juga yah?
Nice post gan, cukup rumit juga :D.
tapi superb, thumb up ;)