Kodeloka
  1. Kodeloka
  2. Kelas Redis
  3. Materi

Data Types ยท Modul 4 dari 21

Tipe Data String & Operations

Mempelajari tipe data paling mendasar di Redis: String, operasi Atomic Increment/Decrement, MSET, MGET, dan Distributed Lock dengan SETNX.

๐Ÿ“Œ 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.

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 SETNX lock:order:1001 "node1". Hanya service pertama yang mendapatkan kembalian 1 (berhasil). Service lain akan menerima 0 (gagal) sehingga tidak terjadi race condition!