Cara Install Redis di Ubuntu untuk Laravel

Redis adalah in-memory data store yang sering digunakan dalam aplikasi Laravel sebagai cache, session store, queue backend, dan penyimpanan data sementara.

Jika Anda sedang membangun aplikasi Laravel di server Ubuntu dan ingin menggunakan Redis, proses instalasinya cukup sederhana.

Pada artikel ini kita akan membahas cara install Redis di Ubuntu, menjalankan service Redis, melakukan pengecekan koneksi, dan menghubungkannya dengan Laravel.

Persiapan

Pastikan Anda memiliki:

  • server atau VPS dengan Ubuntu;
  • akses SSH;
  • user dengan akses sudo;
  • aplikasi Laravel yang sudah berjalan jika Redis akan digunakan untuk Laravel.

Sebelum melakukan instalasi, update package repository Ubuntu:

sudo apt update

Install Redis di Ubuntu

Install Redis menggunakan apt:

sudo apt install redis-server

Ubuntu akan mengunduh dan menginstall Redis beserta dependency yang diperlukan.

Setelah proses selesai, cek versi Redis:

redis-server --version

Jika Redis berhasil diinstall, Anda akan melihat informasi versi Redis yang terpasang.

Cek Status Redis

Redis biasanya dijalankan sebagai systemd service.

Cek statusnya dengan:

sudo systemctl status redis-server

Jika Redis berjalan dengan normal, statusnya akan menunjukkan:

Active: active (running)

Jika statusnya belum berjalan, Anda dapat menjalankannya dengan:

sudo systemctl start redis-server

Agar Redis otomatis dijalankan ketika server melakukan boot:

sudo systemctl enable redis-server

Kemudian Anda dapat memastikan service Redis aktif:

sudo systemctl is-enabled redis-server

Test Redis dengan redis-cli

Setelah Redis berjalan, langkah berikutnya adalah memastikan Redis dapat menerima koneksi.

Gunakan redis-cli:

redis-cli ping

Jika koneksi berhasil, Redis akan memberikan response:

PONG

Response PONG menunjukkan bahwa Redis sudah berjalan dan dapat menerima koneksi dari server.

Anda juga dapat mencoba menyimpan data sederhana:

redis-cli set test "Hello Redis"

Kemudian ambil kembali data tersebut:

redis-cli get test

Hasilnya:

"Hello Redis"

Setelah selesai melakukan pengujian, key tersebut dapat dihapus:

redis-cli del test

Konfigurasi Redis untuk Laravel

Setelah Redis berhasil berjalan, kita dapat menghubungkannya dengan Laravel.

Konfigurasi koneksi Redis Laravel biasanya diletakkan pada file .env.

Contoh:

REDIS_CLIENT=phpredis

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

127.0.0.1 digunakan ketika Redis berjalan pada server yang sama dengan aplikasi Laravel.

Port default Redis adalah 6379.

Setelah mengubah .env, bersihkan konfigurasi Laravel:

php artisan config:clear

Sekarang Laravel dapat menggunakan koneksi Redis berdasarkan konfigurasi tersebut.

Menggunakan Redis sebagai Cache di Laravel

Setelah Redis terhubung, Redis dapat digunakan sebagai cache store Laravel.

Contoh sederhana:

use Illuminate\Support\Facades\Cache;

$products = Cache::remember(
    'products.latest',
    600,
    fn () => Product::latest()->get()
);

Pada contoh tersebut, Laravel akan mengambil data dari cache jika tersedia.

Jika cache belum tersedia, Laravel menjalankan query database kemudian menyimpan hasilnya ke cache.

Redis membantu mengurangi query database yang harus dilakukan berulang kali.

Untuk menghapus cache:

Cache::forget('products.latest');

Anda dapat membaca lebih lanjut mengenai penggunaan Redis di Laravel pada artikel Laravel Redis: Cara Menggunakan Redis untuk Cache dan Session.

Menggunakan Redis untuk Session Laravel

Redis juga dapat digunakan sebagai session store.

Pada file .env:

SESSION_DRIVER=redis

Kemudian bersihkan konfigurasi Laravel:

php artisan config:clear

Session Laravel tetap digunakan dengan API yang sama:

session(['user_id' => 123]);

$userId = session('user_id');

Redis akan menangani penyimpanan session di belakang layar.

Penggunaan Redis sebagai session store sangat berguna untuk aplikasi Laravel yang berjalan pada beberapa server karena session dapat disimpan pada storage yang dapat diakses bersama.

Apakah Redis Harus Dibuka ke Internet?

Tidak.

Jika Laravel dan Redis berada pada server yang sama, Redis sebaiknya hanya menerima koneksi lokal.

Untuk aplikasi Laravel yang menggunakan Redis pada server yang sama, penggunaan:

127.0.0.1:6379

merupakan konfigurasi yang umum.

Jangan membuka port Redis ke internet tanpa alasan dan konfigurasi keamanan yang tepat.

Redis bukan service yang seharusnya diekspos secara sembarangan ke publik.

Jika Redis berada pada server terpisah, gunakan jaringan privat atau mekanisme keamanan yang sesuai dengan infrastructure Anda.

Troubleshooting Redis di Ubuntu

Redis tidak berjalan

Cek status service:

sudo systemctl status redis-server

Jika diperlukan, restart Redis:

sudo systemctl restart redis-server

Kemudian coba kembali:

redis-cli ping

redis-cli tidak bisa terhubung

Pastikan Redis sedang berjalan:

sudo systemctl status redis-server

Kemudian periksa apakah Redis sedang listen pada port 6379:

sudo ss -lntp | grep 6379

Jika Redis berjalan secara lokal, Anda seharusnya dapat melihat service yang listen pada port tersebut.

Laravel tidak dapat terhubung ke Redis

Periksa kembali konfigurasi .env:

REDIS_HOST=127.0.0.1
REDIS_PORT=6379

Kemudian jalankan:

php artisan config:clear

Jika aplikasi menggunakan PHP extension untuk Redis, pastikan extension yang diperlukan juga sudah tersedia pada environment PHP Anda.

Perintah Redis yang Berguna

Beberapa perintah yang berguna ketika melakukan troubleshooting:

# Cek versi Redis
redis-server --version

# Cek koneksi
redis-cli ping

# Cek status service
sudo systemctl status redis-server

# Restart Redis
sudo systemctl restart redis-server

# Melihat informasi Redis
redis-cli info

# Masuk ke Redis CLI
redis-cli

Gunakan perintah administrasi Redis dengan hati-hati, terutama pada server production.

Kesimpulan

Install Redis di Ubuntu dapat dilakukan dengan beberapa langkah sederhana:

sudo apt update
sudo apt install redis-server

Kemudian pastikan Redis berjalan:

sudo systemctl status redis-server

Dan test koneksi:

redis-cli ping

Jika response yang diterima adalah:

PONG

Redis sudah siap digunakan.

Untuk aplikasi Laravel, Redis dapat dimanfaatkan sebagai cache, session store, queue backend, dan kebutuhan data sementara lainnya.

Jika tujuan Anda adalah menggunakan Redis untuk meningkatkan performa aplikasi Laravel, langkah berikutnya adalah mengatur Redis sebagai cache store dan mulai menggunakan Cache::remember() untuk data yang sering dibaca tetapi jarang berubah.