Mengenal Database 0, 1, 2, dst di Redis: Konsep, Fungsi, dan Contoh Penggunaan

Pengenalan Redis dan Multi Database

Redis merupakan salah satu in-memory database yang banyak digunakan untuk caching, session management, queue, hingga pub-sub. Namun, banyak pengguna Redis yang hanya mengetahui satu database saja, padahal Redis mendukung beberapa database yang diidentifikasi dengan nomor seperti 0, 1, 2, dst.

Apa Itu Database 0, 1, 2, … di Redis?

Saat Redis berjalan, ia tidak hanya menyediakan satu database saja, melainkan beberapa database yang dapat diakses secara independen. Setiap database diberi nomor mulai dari 0 sampai angka tertentu (default-nya adalah 16 database, dari 0 hingga 15). Anda bisa berganti database menggunakan perintah SELECT.

Misal:

SELECT 0
SET foo bar
SELECT 1
GET foo  # akan menghasilkan (nil), karena key hanya ada di database 0

Fungsi dan Karakteristik Masing-masing Database

  • Database 0: Ini adalah database default yang langsung dipakai ketika Anda terhubung ke Redis tanpa melakukan SELECT database lain. Umumnya digunakan untuk kebutuhan utama aplikasi.
  • Database 1, 2, dst: Setiap database bisa digunakan untuk kebutuhan berbeda. Misalnya, database 1 untuk penyimpanan data sementara, database 2 untuk proses pengujian/development, dan seterusnya. Data di setiap nomor database tidak saling terlihat antar database.

Kapan Harus Menggunakan Database Selain Database 0?

  • Pemisahan Data Berdasarkan Lingkungan: Jika aplikasi Anda punya proses production dan development pada satu instance Redis, gunakan database berbeda untuk menghindari pencampuran data.
  • Pemisahan Berdasarkan Fitur: Misal, ingin data session user di database 1, cache di database 2, antrian task di database 3, dst.
  • Testing Cepat: Development sering menggunakan database terpisah agar data utama (prod) tidak terganggu saat menguji fitur baru atau debug.

Namun, setiap database tetap berada di proses Redis yang sama dan berbagi resource! Jadi penggunaan pemisahan ini tidak memberikan isolasi tingkat tinggi (misal performance atau quota). Untuk isolasi kuat, sebaiknya gunakan instance Redis terpisah.

Contoh Penggunaan Database di Redis

  1. Skrip Sederhana:

    # Database 0
    SELECT 0
    SET hello world
    
    # Database 1
    SELECT 1
    SET hello redis
    
    SELECT 0
    GET hello   # Output: world
    SELECT 1
    GET hello   # Output: redis
  2. Contoh di Aplikasi Laravel:
    config/database.php bisa diatur untuk database di Redis:

    'redis' => [
        'client' => 'predis',
        'default' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => 1, // Menggunakan database 1
        ],
    ],

    Anda bisa menggunakan database Redis yang berbeda untuk berbagai keperluan, misalnya session, cache, dsb.

Kesimpulan

Redis menyediakan kemudahan pemisahan data melalui fitur multi database (0, 1, 2, dst). Ini sangat bermanfaat untuk isolasi sederhana antara fitur atau lingkungan aplikasi. Namun, untuk isolasi dan performa maksimal, lebih disarankan menggunakan instance Redis terpisah. Semoga penjelasan ini membantu pemahaman Anda tentang cara kerja database di Redis!

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *