Cache
Saat ini, driver Obeject Cache yang sudah tersedia adalah APC, Memcache dan Memcached.
Sebelum menggunakan library cache, terlebih dahulu harus dilakukan konfigurasi. Bagian konfigurasi database terletak pada file apps/config.php.
Konfigurasi
Bagian-bagian yang harus dilengkapi nama_koneksi dan driver.
$CONFIG['cache']['nama_koneksi']['driver'] = 'driver';
Saat ini pilihan driver yang tersedia adalah apc, memcache dan memcached.
Sebagai contoh jika ingin mengunakan APC sebagai cache, maka konfigurasinya adalah:
$CONFIG['cache']['default']['driver'] = 'apc';
Nilai default pada konfigurasi di atas menunjukan koneksi cache default. Jika Anda menginginkan koneksi cache yang lain silahkan tambahkan nama baru pada bagian ini. Sebagai contoh:
Inisialisasi
Berikut adalah contoh membuat instance untuk DB baik itu di dalam model ataupun controller:
Method
Untuk berinteraksi dengan cache driver, berikut adalah API yang tersedia:
set_value
Melakukan penyimpanan data yang akan di-cache.
mix $this->cache->set_value($key, $value, $expire = 0, $namespace = false);
Parameter
| Variable | Tipe Data | Keterangan |
|---|---|---|
| $key | string | Nama key unik sebagai identifier cache. |
| $value | mix | Nilai yang akan disimpan ke dalam cache. |
| $expire | int | Berapa lama cache akan disimpan dalam satuan detik. |
| $namespace | string | Key dari namespace yang ingin digunakan. |
add_value
Melakukan penyimpanan data yang akan di-cache hanya jika key yang diberikan belum pernah digunakan sebelumnya. Jika ternyata key-nya sudah digunakan maka nilai returnnya adalah false.
mix $this->cache->add_value($key, $value, $expire = 0, $namespace = false);
Parameter
| Variable | Tipe Data | Keterangan |
|---|---|---|
| $key | string | Nama key unik sebagai identifier cache. |
| $value | mix | Nilai yang akan disimpan ke dalam cache. |
| $expire | int | Berapa lama cache akan disimpan dalam satuan detik. |
| $namespace | string | Key dari namespace yang ingin digunakan. |
update_value
Melakukan update data yang sudah di-cache berdasarkan key yang diberikan.
mix $this->cache->update_value($key, $value, $expire = 0, $namespace = false);
Parameter
| Variable | Tipe Data | Keterangan |
|---|---|---|
| $key | string | Nama key unik sebagai identifier cache. |
| $value | mix | Nilai yang akan disimpan ke dalam cache. |
| $expire | int | Berapa lama cache akan disimpan dalam satuan detik. |
| $namespace | string | Key dari namespace yang ingin digunakan. |
get_value
Mendapatkan data yang sudah di-cache berdasarkan key yang diberikan.
mix $this->cache->get_value($key, $namespace = false);
Parameter
| Variable | Tipe Data | Keterangan |
|---|---|---|
| $key | string | Nama key unik sebagai identifier cache. |
| $namespace | string | Key dari namespace yang ingin digunakan. |
delete_value
Menghapus data yang sudah di-cache berdasarkan key yang diberikan.
mix $this->cache->delete_value($key, $namespace = false);
Parameter
| Variable | Tipe Data | Keterangan |
|---|---|---|
| $key | string | Nama key unik sebagai identifier cache. |
| $namespace | string | Key dari namespace yang ingin digunakan. |
flush_values
Menghapus semua data yang sudah di-cache.
bool $this->cache->flush_values();
Namespace
Namespace bisa dignakan jika Anda ingin melakukan modifikasi data cache dengan beberapa key yang berbeda-beda secara bersamaan.
Sebagai contoh jika ada sebuah data yang Anda tampilkan dengan cara paging. Setiap halaman dapat menampung 10 data dimana data ini kemudian disimpan ke dalam cache. Key dari masing-masing halaman misalnya comment_page_1, comment_page_2, comment_page_3 ... dst. Jika ada data baru yang ingin ditambahkan dan semua data ini perlu di flush, maka untuk melakukan hal ini cukup dengan menghapus namespace-nya saja. Berikut adalah contohnya:
API Spesifik Driver
Selain dari API yang sudah disediakan, Anda juga bisa menggunakan API yang tersedia dari masing-masing driver.