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
-
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
-
Contoh di Aplikasi Laravel:
config/database.php bisa diatur untukdatabase
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!