Panada Framework 1.0.0 Documentation

Memcache

Memcache adalah aplikasi memory object caching yang terdistribusi. Dengan melakukan caching object, hal ini akan mempercepat kinerja aplikasi, karena mengurangi beban database.

Untuk menggunakan driver ini, pastikan PHP Anda telah terinstall ekstensi Memcache.

Konfigurasi

Konfigurasi dilakukan di file app/config/cache.php

Bagian-bagian yang harus dilengkapi adalah host, dan port.

Jika diperlukan untuk melakukan setting Compression Threshold, lihat pada bagian panada/drivers/cache/memcache.php: 37

bool $this->setCompressThreshold(20000, 0.2);

Compression Threshold berfungsi untuk melakukan pengkompressan object yang besar secara otomatis.

Lebih lanjut mengenai Compression Threshold, silahkan lihat di http://www.php.net/manual/en/memcache.setcompressthreshold.php

Inisialisasi

Inisialisasi driver Memcached bisa dilakukan di dalam constructor ataupun method yang bersangkutan.

$this->cache = new Resources\Cache();

Set

Menyimpan data yang akan dicache.

bool $this->cache->set($key, $var, $flag = 0, $expire = 0);

Parameter

Variable Tipe Data Keterangan
$key string Key unik sebagai identitas penanda item yang dicache.
$var mix string | integer | array | object | boolan Data yang ingin dicache.
$flag Integer Flag untuk melakukan kompresi terhadap data yang akan dicache. Gunakan MEMCACHE_COMPRESSED untuk falg-nya.
$expire Integer Waktu yang menunjukan berapa lama item di cache. Format waktu dalam satuan detik. Format waktu juga bisa diisikan dalam Unix timestamp. Nilai defaultnya adalah 0, yang berarti cache disimpan selama mungkin.

Keterangan lebih lanjut bisa dilihat di http://www.php.net/manual/en/memcache.set.php

Add

Menyimpan data yang akan dicache hanya jika key yang digunakan belum tersedia.

bool $this->cache->add($key, $var, $flag = 0, $expire = 0);

Parameter

Variable Tipe Data Keterangan
$key string Key unik sebagai identitas penanda item yang dicache.
$var mix string | integer | array | object | boolan Data yang ingin dicache.
$flag Integer Flag untuk melakukan kompresi terhadap data yang akan dicache. Gunakan MEMCACHE_COMPRESSED untuk falg-nya.
$expire Integer Waktu yang menunjukan berapa lama item di cache. Format waktu dalam satuan detik. Format waktu juga bisa diisikan dalam Unix timestamp. Nilai defaultnya adalah 0, yang berarti cache disimpan selama mungkin.

Keterangan lebih lanjut bisa dilihat di http://www.php.net/manual/en/memcache.add.php

Replace

Menggantikan data yang sudah dicache sebelumnya berdasarkan key yang tersedia.

bool $this->cache->replace($key, $var, $flag = 0, $expire = 0);

Parameter

Variable Tipe Data Keterangan
$key string Key unik sebagai identitas penanda item yang dicache.
$var mix string | integer | array | object | boolan Data yang ingin dicache.
$flag Integer Flag untuk melakukan kompresi terhadap data yang akan dicache. Gunakan MEMCACHE_COMPRESSED untuk falg-nya.
$expire Integer Waktu yang menunjukan berapa lama item di cache. Format waktu dalam satuan detik. Format waktu juga bisa diisikan dalam Unix timestamp. Nilai defaultnya adalah 0, yang berarti cache disimpan selama mungkin.

Keterangan lebih lanjut bisa dilihat di http://www.php.net/manual/en/memcache.replace.php

Get

Mendapatkan data yang sudah dicache.

string $this->cache->get($key, $flags = 0);
array $this->cache->get($keys, $flags = array() );

Parameter

Variable Tipe Data Keterangan
$key string | array Key atau array key dari data yang akan didapatkan dari cache.
$flag Integer Flag yang digunakan pada method set.

Keterangan lebih lanjut bisa dilihat di http://www.php.net/manual/en/memcache.get.php

Delete

Hapus item yang sudah dihapus dari cache berdasarkan key-nya.

bool $this->cache->delete($key)

Parameter

Variable Tipe Data Keterangan
$key string Key dari cache yang akan dihapus.

Keterangan lebih lanjut bisa dilihat di http://www.php.net/manual/en/memcache.delete.php

Flush

Hapus semua item cache.

bool $this->cache->flush();

Perhatian: Penggunaan method ini akan mengakibatkan terhapusnya semua object yang sudah disimpan sehingga bisa mengakibatkan meningkatnya penggunaan database.

Keterangan lebih lanjut bisa dilihat di http://www.php.net/manual/en/memcache.flush.php

Increment

Melakukan penambahan nilai incremental berdasarkan nilai item yang ada di cache.

int $this->cache->increment($key, $value = 1);

Parameter

Variable Tipe Data Keterangan
$key string Key dari item yang dicache.
$value Integer Nilai integer penambah.

Keterangan lebih lanjut bisa dilihat di http://www.php.net/manual/en/memcache.increment.php

Decrement

Melakukan pengurangan nilai decremental berdasarkan nilai item yang ada di cache.

int $this->cache->decrement($key, $value = 1);

Parameter

Variable Tipe Data Keterangan
$key string Key dari item yang dicache.
$value Integer Nilai integer penambah.

Keterangan lebih lanjut bisa dilihat di http://www.php.net/manual/en/memcache.decrement.php

Other Method

Library Memcached panada merupakan inheritance dari class Memcache natif PHP. Hal ini berarti, semua resources yang ada pada class tersebut bisa langsung digunakan.

Berikut adalah matrik dari method-method class Memcache yang bisa digunakan:

PHP Memcache Panada Memcached Keterangan
Memcache::close $this->cache->close() http://www.php.net/manual/en/memcache.close.php
Memcache::getExtendedStats $this->cache->getExtendedStats() http://www.php.net/manual/en/memcache.getextendedstats.php

Contoh

Berikut adalah contoh penggunaan dari masing-masing method di atas.

Diskusi