Home » » Menggunakan Memcached di PHP

Menggunakan Memcached di PHP

Written By Unknown on Senin, 10 Juni 2013 | 23.27


Memcached adalah memory-object-caching-system, bersifat umum, dimaksudkan untuk digunakan dalam mempercepat aplikasi web dinamis dengan meringankan beban database.
Memcached bekerja sebagai semacam hash atau array asosiasi yang dapat menyimpan data berupa string, integer atau bahkan object. Data hash ini disimpan didalam memori komputer (RAM) hingga sangat cepat untuk diakses.
Perlu diketahui sebelumnya bahwa hash berfungsi untuk menjadi identitas atau semacam sidik jari dari suatu data, hash ini dapat diimplementasikan untuk data berapapun panjangnya dan menghasilkan ukuran/panjang yang tetap.
Misal kita melakukan query ke database untuk mengambil daftar teman (friendlist) si A, kita akan mengambil data dari database dan menyimpannya dalam memcached, lalu ketika query berikutnya untuk mengambil daftar friendlist si A maka data tersebut akan diambil dari memcached sehingga tidak akan memberatkan database server. Seperti kerja pada RAM komputer, data yang telah tersimpan sementara di RAM tidak perlu diambil lagi dari dalam hardisk karena akan memakan waktu akses data yang lebih lama.
Install Memcached di windows
  1. Download memcached server untuk windows disini : http://code.jellycan.com/memcached direct linkhttp://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip , kemudian extrak file zip tersebut ke drive D:/ atau terserah anda.
  2. Selanjutnya kita install memcached.exe dengan cara: buka command prompt sebagai administrator kemudian tuliskan perintah seperti gambar di bawah ini :
  3. Buka file php.ini, ganti baris
    ;extension=php_memcache.dll
    menjadi
    extension=php_memcache.dll
    Kemudian tambahkan :
    [Memcache]  
    memcache.allow_failover = 1  
    memcache.max_failover_attempts=20  
    memcache.chunk_size =8192  
    memcache.default_port = 11211
  4. Restart webserver anda.

Contoh penggunaan memcached di PHP
Buat file baru "set.php" dan dibawah ini adalah contoh coding nya :
1.   php
2. $memcache = new Memcache;
3.    $memcache->connect('localhost', 11211) or die ("Could not connect");
4.   
5.    $data = array( 'nim'=>'0612502526',
6.                  'nama'=>'faiz fadly',
7.                   'email'=>'faiz.fadly@gmail.com',
8.                );
9.     
10.   $key = md5("0612502526");
11.  //simpan ke cache
12.  $memcache->set($key, $data);
13. echo "data berhasil di simpan di memchaced
";
14.    var_dump($data);
15.    ?>
Code di atas untuk menyimpan data ke server memcached ($memcache->set($key, $data);) buat satu file lagi .php satu lagi "get.php" dan ini contoh code-nya :
1.   php
2. //koneksi ke memcahce
3.    $memcache = new Memcache;
4.    $memcache->connect('localhost', 11211) or die ("Could not connect");
5.  
6. $key = md5("0612502526");
7.  //Ambil dari cache
8.   $get_result = $memcache->get($key);
9.   echo "Data dari  cache:
";
10.   
11.   var_dump($get_result);
12.  ?>
Dan coding berikut -> $memcache->delete($key); untuk menghapus data dari cache.silahkan di coba sendiri. 

Caching hasil Query dengan Memcached
1.   php
2.  
3.    //koneksi ke database
4.    $dbh = new PDO("mysql:host=localhost;dbname=test", "root", "");
5.    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
6.     
7.    //koneksi Memcached
8.  $memcache = new Memcache;
9.    $memcache->connect('localhost', 11211) or die ("Could not connect");
10.  
11.    
12.   $key = md5("0612502526"); // Unique Words
13. $cache_result = array();
14.     
15.   //ambil data dari cache
16. $cache_result = $memcache->get($key);
17.     
18.   if($cache_result)
19.   {
20.           $pesan = "dari cache
";
21.          $demo_result = $cache_result;
22.   }
23.   else
24.    {
25.           try {
26.                   $stmt = $dbh->prepare("SELECT * FROM mahasiswa WHERE nim=?");
27.                  $stmt->execute(array("0612502526"));
28.                   $demo_result = $stmt->fetchAll(PDO::FETCH_ASSOC);
29.     
30.                   $pesan = "dari database
";
31.                   //simpan data ke cache dari hasil Query
32.                 $memcache->set($key, $demo_result, MEMCACHE_COMPRESSED, 1200);
33.                  
34.         } catch(PDOException $e) {
35.                  echo $e->getMessage();
36.           }
37.    
38.   }
39.    
40.   echo $pesan;
41.    var_dump($demo_result);
42.  
43.   ?>
Demikian Tutorial sederhana ini, semoga bermanfaat. Tetap sehat, tetap semangat biar bisa koding dan berbagi.
Share this article :
 
Support : support@masterfreelance.com | +62 - 857 - 1061 - 2210 | 327E8DA0
Copyright © 2013. MasterFreelance Blog - All Rights Reserved
Jl. Satria 5 No 27 - 28
Bojong Nangka , Kelapa Dua - Tangerang
15821, Banten - Indonesia