Redis
Redis (Remote Dictionary Server) adalah in-memory data store yang dapat digunakan sebagai database, cache, dan message broker. Redis dikenal karena kecepatannya yang sangat tinggi dan dukungan terhadap berbagai struktur data seperti string, hash, list, set, dan sorted set.
Fitur Utama Redis
- Performa tinggi (operasi di memori, latency < 1ms)
- Mendukung berbagai tipe data
- Persistence: data dapat disimpan di disk (RDB/AOF)
- Mendukung autentikasi & enkripsi TLS
- Replikasi & High Availability dengan Redis Sentinel
- Cluster Mode untuk skala besar dan horizontal scaling
Kegunaan Umum Redis
| Use Case | Penjelasan |
|---|---|
| Caching | Menyimpan hasil query atau data sementara untuk mempercepat respons. |
| Session Store | Menyimpan session user aplikasi web. |
| Message Queue (Pub/Sub) | Komunikasi antar layanan (microservices). |
| Rate Limiting | Membatasi jumlah request API. |
| Leaderboard/Game Data | Menyimpan skor, statistik real-time, dan peringkat. |
Instalasi Redis
A. Instalasi di Linux (Ubuntu/Debian)
sudo apt update
sudo apt install redis-server -y
Periksa status Redis:
sudo systemctl status redis
Jalankan Redis CLI:
redis-cli
set hello world
get hello
B. Instalasi Menggunakan Docker
docker run -d \
--name redis \
-p 6379:6379 \
redis:latest
Masuk ke CLI Redis dalam container:
docker exec -it redis redis-cli
Contoh:
set test "Redis Docker Running"
get test
Konfigurasi Redis
File utama konfigurasi:/etc/redis/redis.conf
Contoh pengaturan:
bind 0.0.0.0
port 6379
requirepass redis123
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /var/lib/redis
logfile /var/log/redis/redis-server.log
maxmemory 256mb
maxmemory-policy allkeys-lru
Restart Redis:
sudo systemctl restart redis
Perintah Dasar Redis CLI
| Perintah | Fungsi |
|---|---|
SET key value | Menyimpan nilai |
GET key | Mengambil nilai |
DEL key | Menghapus key |
KEYS * | Menampilkan semua key |
FLUSHALL | Menghapus seluruh data |
INFO | Menampilkan status server |
PING | Mengecek konektivitas |
Persistence di Redis
RDB - Snapshot berkala, cepat tapi bisa kehilangan data terakhir. AOF - Menyimpan semua operasi write, lebih aman tapi lebih lambat.
Aktifkan AOF:
appendonly yes
appendfilename "appendonly.aof"
Redis Sentinel (High Availability)
port 26379
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster redis123
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000
Monitoring Redis
redis-cli info stats
redis-cli info memory
Kesimpulan
Redis adalah solusi penyimpanan data in-memory yang cepat, ringan, dan fleksibel untuk caching, queue, dan distributed data store.