
Percepatan performa aplikasi merupakan hal yang penting untuk memastikan pengalaman pengguna yang baik. Dalam blog ini, kami akan membahas bagaimana menggunakan caching pada Laravel untuk meningkatkan kecepatan aplikasi dan meningkatkan pengalaman pengguna.
Konsep Dasar
Caching adalah proses menyimpan data ke dalam penyimpanan sementara (cache) untuk digunakan kembali nanti. Caching dapat meningkatkan kecepatan aplikasi karena data yang disimpan dalam cache dapat diakses dengan cepat daripada mengambil data dari database atau API. Caching juga dapat meningkatkan pengalaman pengguna karena aplikasi dapat menampilkan data yang sudah ada dalam cache sebelum data yang baru diambil dari database atau API. Dalam blog ini, kami akan membahas bagaimana menggunakan caching pada Laravel untuk meningkatkan kecepatan aplikasi dan meningkatkan pengalaman pengguna..
Caching pada Laravel menggunakan sistem penyimpanan cache yang disediakan oleh framework. Laravel menyediakan beberapa driver penyimpanan cache yang dapat digunakan, seperti file, database, Redis, dan lainnya. Driver penyimpanan cache dapat dikonfigurasi di file konfigurasi config/cache.php
. Secara default, Laravel menggunakan driver penyimpanan cache file
untuk menyimpan cache dalam file. Driver penyimpanan cache lainnya dapat digunakan dengan mengubah nilai dari konfigurasi default
di file konfigurasi config/cache.php
.
Membuat Cache
Untuk membuat cache, Anda dapat menggunakan helper cache
atau facade Cache
. Helper cache
dan facade Cache
memiliki fungsi yang sama. Helper cache
dapat digunakan dengan cara berikut:
cache()->put('key', 'value', $minutes);
Penjelasan:
-
cache()
adalah helper untuk memanggil facadeCache
. -
put()
adalah fungsi untuk membuat cache baru. -
'key'
adalah kunci untuk cache. -
'value'
adalah nilai untuk cache. -
$minutes
adalah durasi cache dalam menit.
Fungsi put()
dapat digunakan untuk membuat cache baru atau mengubah nilai cache yang sudah ada. Jika cache dengan kunci yang sama sudah ada, nilai cache akan diganti dengan nilai baru. Jika cache dengan kunci yang sama belum ada, cache baru akan dibuat.
Fungsi put()
juga dapat digunakan untuk membuat cache yang tidak memiliki waktu kedaluwarsa. Untuk membuat cache yang tidak memiliki waktu kedaluwarsa, nilai dari parameter $minutes
dapat diisi dengan null
.
Membaca Cache
Untuk membaca cache, Anda dapat menggunakan helper cache
atau facade Cache
. Helper cache
dan facade Cache
memiliki fungsi yang sama. Helper cache
dapat digunakan dengan cara berikut:
$value = cache()->get('key');
Penjelasan:
-
cache()
adalah helper untuk memanggil facadeCache
. -
get()
adalah fungsi untuk membaca cache. -
'key'
adalah kunci untuk cache.
Fungsi get()
dapat digunakan untuk membaca cache. Jika cache dengan kunci yang sama sudah ada, nilai cache akan dikembalikan. Jika cache dengan kunci yang sama belum ada, null
akan dikembalikan.
Mengambil dan Membuat Cache Sekaligus
Untuk mengambil dan membuat cache sekaligus, Anda dapat menggunakan helper cache
atau facade Cache
. Helper cache
dan facade Cache
memiliki fungsi yang sama. Helper cache
dapat digunakan dengan cara berikut:
$value = cache()->remember('key', $minutes, function () {
return 'value';
});
Penjelasan:
-
cache()
adalah helper untuk memanggil facadeCache
. -
remember()
adalah fungsi untuk mengambil dan membuat cache sekaligus. -
'key'
adalah kunci untuk cache. -
$minutes
adalah durasi cache dalam menit. -
function () { return 'value'; }
adalah fungsi untuk membuat cache jika cache belum ada.
Fungsi remember()
dapat digunakan untuk mengambil dan membuat cache sekaligus. Jika cache dengan kunci yang sama sudah ada, nilai cache akan dikembalikan. Jika cache dengan kunci yang sama belum ada, fungsi yang diberikan akan dijalankan untuk membuat cache baru. Setelah cache dibuat, nilai cache akan dikembalikan.
Fungsi remember()
juga dapat digunakan untuk membuat cache yang tidak memiliki waktu kedaluwarsa. Untuk membuat cache yang tidak memiliki waktu kedaluwarsa, nilai dari parameter $minutes
dapat diisi dengan null
.
Menghapus Cache
Untuk menghapus cache, Anda dapat menggunakan helper cache
atau facade Cache
. Helper cache
dan facade Cache
memiliki fungsi yang sama. Helper cache
dapat digunakan dengan cara berikut:
cache()->forget('key');
Penjelasan:
-
cache()
adalah helper untuk memanggil facadeCache
. -
forget()
adalah fungsi untuk menghapus cache. -
'key'
adalah kunci untuk cache.
Fungsi forget()
dapat digunakan untuk menghapus cache. Jika cache dengan kunci yang sama sudah ada, cache akan dihapus. Jika cache dengan kunci yang sama belum ada, tidak ada yang terjadi.
Mengecek Cache
Untuk mengecek apakah cache dengan kunci tertentu sudah ada atau belum, Anda dapat menggunakan helper cache
atau facade Cache
. Helper cache
dan facade Cache
memiliki fungsi yang sama. Helper cache
dapat digunakan dengan cara berikut:
$exists = cache()->has('key');
Penjelasan:
-
cache()
adalah helper untuk memanggil facadeCache
. -
has()
adalah fungsi untuk mengecek apakah cache dengan kunci tertentu sudah ada atau belum. -
'key'
adalah kunci untuk cache.
Fungsi has()
dapat digunakan untuk mengecek apakah cache dengan kunci tertentu sudah ada atau belum. Jika cache dengan kunci yang sama sudah ada, true
akan dikembalikan. Jika cache dengan kunci yang sama belum ada, false
akan dikembalikan.
Contoh Kasus
Untuk contoh kasus, Anda dapat membuat cache untuk menyimpan data peringkat pengguna berdasarkan jumlah pesanan yang dibuat. Data peringkat pengguna dapat dihitung dengan query berikut:
Anda dapat membuat cache untuk menyimpan data peringkat pengguna yang didapatkan dari hasil eloquent query dengan cara berikut:
$users = cache()->remember('users', 60, function () {
return User::withCount('orders')
->orderBy('orders_count', 'desc')
->get();
});
Pada contoh kode di atas, Anda dapat menggunakan helper cache
untuk memanggil facade Cache
. Kemudian Anda dapat menggunakan fungsi remember()
untuk membuat cache baru. Jika cache dengan kunci users
sudah ada, maka nilai cache akan dikembalikan. Jika cache dengan kunci users
belum ada, maka nilai cache akan dihitung dengan fungsi closure yang diberikan sebagai parameter kedua.
Cache dengan kunci users
akan memiliki durasi 60 menit. Jika cache sudah kadaluarsa, maka nilai cache akan dihitung ulang dengan fungsi closure yang diberikan sebagai parameter kedua.
Lalu Anda dapat menggunakan variabel $users
untuk menampilkan data peringkat pengguna yang telah diurutkan berdasarkan jumlah pesanan yang dibuat.
Kemudian ketika anda mengakses halaman peringkat pengguna, data peringkat pengguna akan diambil dari cache. Jika cache sudah kadaluarsa, maka data peringkat pengguna akan diambil dari database dan cache akan diupdate.
Penutup
Pada artikel kali ini, Anda telah mempelajari bagaimana cara membuat cache, mengambil cache, menghapus cache, dan mengecek cache.
Dengan menggunakan cache, Anda dapat meningkatkan performa aplikasi Anda. Anda dapat menggunakan cache untuk menyimpan data yang sering diakses sehingga data tersebut tidak perlu diambil dari database setiap kali diakses.