๐ Ringkasan Eksekutif Modul:
String di Redis adalah binary safe dan dapat menampung teks, angka, hingga data biner (gambar/JSON) hingga ukuran 512MB. Operasi numerik seperti `INCR` bersifat atomic.
String di Redis adalah binary safe dan dapat menampung teks, angka, hingga data biner (gambar/JSON) hingga ukuran 512MB. Operasi numerik seperti `INCR` bersifat atomic.
1. Konsep Redis String
Tipe data String adalah tipe data paling mendasar dan paling umum di Redis. Karakteristik penting dari String Redis:
- Binary Safe: Dapat menyimpan karakter teks biasa, string JSON, potongan HTML, hingga file biner (gambar/file terkompresi).
- Max Size: Satu nilai String dapat berukuran hingga 512 Megabytes.
- Atomic Integer Operations: Jika string berisi karakter angka (misal "100"), Redis menyediakan perintah khusus untuk manipulasi aritmatika yang bersifat atomic.
2. Perintah Manipulasi String
redis-cli syntax
# Menyimpan & Mengambil Data
SET user:name "Eko Kurniawan"
GET user:name
# SETNX (Set if Not Exists) - Sangat berguna untuk Distributed Locking
SETNX lock:order:1001 "process_123"
# Multiple Set & Get (Mengurangi Round-Trip Time)
MSET user:1 "Budi" user:2 "Joko" user:3 "Siti"
MGET user:1 user:2 user:3
# Atomic Counter Operations
SET page_views 100
INCR page_views # Nilai menjadi 101
INCRBY page_views 5 # Nilai menjadi 106
DECR page_views # Nilai menjadi 105
DECRBY page_views 10 # Nilai menjadi 95
# String Manipulation
APPEND user:name " Khannedy" # Menggabungkan teks
STRLEN user:name # Menghitung panjang karakter
๐ฅ Distributed Lock Pattern dengan SETNX:
Saat beberapa aplikasi microservices mencoba memproses pesanan yang sama secara bersamaan, jalankan
Saat beberapa aplikasi microservices mencoba memproses pesanan yang sama secara bersamaan, jalankan
SETNX lock:order:1001 "node1". Hanya service pertama yang mendapatkan kembalian 1 (berhasil). Service lain akan menerima 0 (gagal) sehingga tidak terjadi race condition!