Caching adalah salah satu teknik paling efektif untuk meningkatkan performa aplikasi Laravel, terutama saat aplikasi Anda sering melakukan query ke database yang sama berulang kali.
Dengan menggunakan Database Cache, Anda bisa menyimpan hasil query sementara agar tidak perlu selalu mengambil data langsung dari database.
Dalam tutorial ini, kita akan membahas cara menggunakan cache database di Laravel 12, lengkap dengan contoh kode, penjelasan konsep, dan praktik terbaik.
Apa Itu Cache di Laravel?
Cache adalah penyimpanan sementara yang digunakan untuk menyimpan data agar bisa diakses lebih cepat tanpa perlu melakukan proses yang sama berulang-ulang.
Laravel menyediakan berbagai driver cache seperti:
file→ default, menyimpan di filesystemdatabase→ menyimpan di tabel databaseredis→ cache cepat berbasis memorimemcached→ cache server eksternal
Dalam contoh kali ini, kita akan menggunakan driver database, yang menyimpan cache di tabel khusus bernama cache.
1. Menyiapkan Tabel Cache di Database
Pertama, pastikan database sudah terhubung di .env.
Kemudian jalankan perintah untuk membuat tabel cache:
php artisan cache:table
php artisan migratePerintah ini akan membuat tabel cache otomatis di database Anda.
Isinya digunakan Laravel untuk menyimpan key-value cache.
2. Mengatur Driver Cache di .env
Pastikan konfigurasi cache di .env menggunakan driver database:
CACHE_STORE=database
CACHE_DRIVER=databaseCatatan: di Laravel 12, CACHE_STORE digunakan jika Anda memakai config/cache.php baru.
Jika tidak ada, cukup gunakan CACHE_DRIVER.
3. Menyimpan Data ke Cache
Gunakan Facade Cache untuk menyimpan data ke cache.
Contoh:
use Illuminate\Support\Facades\Cache;
Route::get('/cache/set', function () {
Cache::put('website_name', 'Liradigi Digital Agency', 3600); // 3600 detik = 1 jam
return 'Data berhasil disimpan ke cache!';
});Anda juga bisa menggunakan remember() untuk menyimpan hasil query:
use App\Models\Article;
use Illuminate\Support\Facades\Cache;
Route::get('/articles', function () {
$articles = Cache::remember('articles', 3600, function () {
return Article::latest()->get();
});
return view('articles.index', compact('articles'));
});Penjelasan:
articles→ nama key cache3600→ lama cache disimpan (dalam detik)function () { ... }→ dijalankan hanya jika cache belum ada
4. Mengambil Data dari Cache
Untuk mengambil data dari cache:
$value = Cache::get('website_name');
if ($value) {
echo "Nama website dari cache: $value";
} else {
echo "Cache tidak ditemukan.";
}Atau menggunakan default value:
Cache::get('key_tidak_ada', 'nilai_default');5. Menghapus Cache
Hapus satu key cache:
Cache::forget('articles');Hapus semua cache:
php artisan cache:clearContoh Implementasi Lengkap
Berikut contoh penggunaan cache pada controller artikel:
namespace App\Http\Controllers;
use App\Models\Article;
use Illuminate\Support\Facades\Cache;
class ArticleController extends Controller
{
public function index()
{
$articles = Cache::remember('articles', 3600, function () {
return Article::latest()->get();
});
return view('articles.index', compact('articles'));
}
}Kesimpulan
Menggunakan cache database di Laravel 12 dapat mengurangi beban query, mempercepat waktu respon, dan meningkatkan efisiensi aplikasi.
Langkahnya sederhana:
- Buat tabel cache →
php artisan cache:table - Atur driver cache di
.env - Gunakan
Cache::remember()untuk menyimpan hasil query
Dengan strategi caching yang tepat, aplikasi Laravel Anda akan jauh lebih cepat, efisien, dan hemat sumber daya server.