Table of Contents

Laravel 9.x – 11. Integrasi dengan Redis

Pengenalan

Redis adalah tools open source untuk penyimpanan struktur data dalam memori sumber terbuka. Sering digunakan untuk database dan cache. Nah, pada artikel ini kita akan menerapkan caching pada laravel.

Redis lebih cepat daripada database tradisional yang biasa ditulis ke disk. Redis juga menawarkan lebih banyak struktur data untuk menyimpan data, redis menyediakan struktur data seperti

  1. Strings
  2. Lists
  3. Sets
  4. Hashes
  5. Sorted Sets
  6. Streams
  7. Geospatial indexes
  8. Bitmaps
  9. Bitfields
  10. HyperLogLog

Karena fitur itu, Redis sering digunakan untuk menyimpan state-state sementara. Hal ini umum terjadi pada arsitektur microservice, session stores, dan data yang tidak membutuhkan persistensi jangka panjang.

Menthod

Pada tutorial ini kita hanya akan menggunakan 3 method saja method lain dapat dilihat disini

Set

Method set ini kita akan menyimpan sebuah data kedalam redis dengan menggunakan key yang sama yaitu artikels. Jika key sudah ada sebelumnya, maka akan teroverride dengan data yang baru.

Get

Method get ini kita akan mencari/menampilkan data berdasarkan key yang dicari. Semisal saya mempunyai key artikels lalu saya akan mendapatkan value dari key tersebut.  Method Get hanya menyimpan data berupa string dan akan mengembalikan error key stores hashes atau yang lain. 

Del

Method del ini akan menghapus data berdasarkan key yang diinputkan. Semisal saya mempunyai key data_saya jika kalian menjalankan method del maka akan terhapus data tersebut sesuai keynya.

Persiapan

  1. Laravel sudah terinstall
  2. Konfigurasi sudah sesuai
  3. Crud Post pada module 7 sudah dibuat

Penerapan

Buat Factory
				
					php artisan make:factory PostFactory
				
			
Edit Factory

app/database/factories/PostFactory.php

				
					<?php

namespace Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;

/**
 * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Post>
 */
class PostFactory extends Factory
{
    /**
     * Define the model's default state.
     *
     * @return array<string, mixed>
     */
    public function definition()
    {
        $title= $this->faker->text(50);
        return [
            'title'=> $title,
            'slug'=> \Str::slug($title),
            'content'=>$this->faker->text(200),
            'category_id'=>$this->faker->numberBetween(1,5),
        ];
    }
}
				
			

Daftar field bisa dilihat di sini

Buat Seeder

				
					php artisan make:seeder BlogSeeder
				
			

app/database/seeders/PostSeeder.php

				
					<?php

namespace Database\Seeders;

use App\Models\Post;
use Illuminate\Database\Seeder;

class PostSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Post::factory(100)->create();
    }
}
				
			

Jalankan Seeder

Cek Database akan ada 100 row baru pada table posts

				
					php artisan db:seed --class=PostSeeder
				
			

Cek Database akan ada 100 row baru pada table posts