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.