Basis Data

Redis

Jalur praktis Redis 8 dari struktur data inti hingga pola produksi: cache, antrean, leaderboard, session, stream, dan operasional.

Redis adalah server struktur data dalam memori yang menjadi bagian penting pada backend modern: cache, antrean, leaderboard, session store, dan bus pub/sub dicapai melalui struktur data yang kaya dan set perintah yang presisi. Jalur ini membahas struktur data tersebut dengan benar, siklus hidup key, kompromi persistensi, serta pola produksi seperti cache-aside, lock terdistribusi, dan consumer group stream. Latihan di sepanjang jalur menggunakan redis-cli dan redis-py pada Redis 8.0.2, sehingga setiap perintah dapat langsung dicoba pada terminal.

Mengenal Redis 3 pelajaran

Modul pembuka: tempat Redis dalam arsitektur backend, penyiapan server dan redis-cli, serta sepuluh perintah pertama.

  1. Apa itu Redis ?Mengenal Redis sebagai server struktur data dalam memori dan tempatnya dalam arsitektur aplikasi modern.
  2. PenyiapanMenjalankan redis-server 8.0, menghubungkan redis-cli, dan memverifikasi koneksi dengan PING.
  3. Perintah dasarSepuluh menit pertama di redis-cli: SET, GET, DEL, INCR, dan TTL untuk pola penggunaan paling dasar.
Struktur data 7 pelajaran

Tujuh struktur data Redis: string, list, set, sorted set, hash, stream, dan vector sets beserta latihan perintahnya.

  1. StringOperasi string: counter dengan INCR, flag, batch MSET/MGET, dan penambahan teks dengan APPEND.
  2. ListList dua arah: LPUSH/RPOP, list berbatas dengan LTRIM, dan antrean sederhana.
  3. SetKeanggotaan, union, irisan, dan selisih set untuk kebutuhan tagging dan rekomendasi sederhana.
  4. Sorted setSorted set: skor, rentang ZRANGE, ranking, dan struktur leaderboard.
  5. HashHash sebagai penyimpanan seperti objek: operasi field, HINCRBY, dan kapan hash lebih tepat daripada string.
  6. Pengantar streamStream sebagai log append-only dengan ID otomatis dan XREAD, pengganti modern bagi list untuk log peristiwa.
  7. Vector SetsVector Sets pada Redis 8: struktur semantic search dengan VADD, VSIM, dan atribut elemen.
Manajemen key 4 pelajaran

Siklus hidup key: kedaluwarsa, konvensi penamaan, pemindaian aman, dan pengendalian memori dengan eviksi.

  1. KedaluwarsaPola TTL: EXPIRE, SET dengan EX, persist, dan perilaku waktu kedaluwarsa saat key ditulis ulang.
  2. Desain keyKonvensi penamaan key: namespace, pemisah titik dua, hierarki, dan panjang yang seimbang.
  3. PemindaianSCAN sebagai pengganti KEYS: iterasi kursor, MATCH, COUNT, dan disiplin pemindaian pada produksi.
  4. Memori dan eviksimaxmemory, kebijakan eviksi, MEMORY USAGE, dan kesadaran biaya memori per key.
Persistensi 3 pelajaran

Kompromi durability: snapshot RDB, berkas append-only AOF, dan pemilihan strategi per beban kerja.

  1. RDBSnapshot RDB: pemicu SAVE/BGSAVE, perilaku fork, berkas dump.rdb, dan proses pemulihan.
  2. AOFAOF: pencatatan perintah, kebijakan fsync, rewrite untuk memadatkan berkas, dan pemulihannya.
  3. Keputusan durabilityMemilih RDB, AOF, atau keduanya per beban kerja, termasuk pendekatan hibrida pada Redis 8.
Pola aplikasi 5 pelajaran

Lima pola produksi: cache-aside, pembatasan laju, lock terdistribusi, pub/sub, dan penyimpanan session dengan redis-py.

  1. CachingCache-aside dengan redis-py: pembacaan, pengisian, TTL, dan mitigasi cache stampede.
  2. Pembatasan lajuFixed window dan sliding window dengan INCR dan sorted set, lengkap dengan analisis kelemahannya.
  3. Lock terdistribusiLock dengan SET NX EX: akuisisi, pelepasan aman lewat token, dan batas semantik Redlock.
  4. Pub/subChannel pub/sub: PUBLISH, SUBSCRIBE dengan redis-py, dan jaminan pengiriman yang dibahas dengan jujur.
  5. Penyimpanan sessionSession web di Redis: key per sesi, waktu kedaluwarsa selaras, dan pembacaan di middleware.
Stream dan consumer 3 pelajaran

Stream secara mendalam: XADD/XREAD, consumer group dengan XREADGROUP dan XACK, serta perbandingan dengan alternatif.

  1. Stream mendalamXADD, ID stream, XREAD berbasis ID, dan trimming dengan XTRIM/MAXLEN.
  2. Consumer groupXGROUP, XREADGROUP, ack, daftar pending, dan penanganan pesan gagal.
  3. Stream vs alternatifStream versus pub/sub versus list, dan posisinya secara jujur dibandingkan Kafka untuk kebutuhan nyata.
Operasi 5 pelajaran

Menjalankan Redis untuk produksi: replikasi, Sentinel dan Cluster, monitoring, keamanan ACL, serta transaksi dan pipelining.

  1. ReplikasiRead replica dengan REPLICAOF: aliran data, pengujian keterlambatan, dan dasar failover.
  2. Sentinel dan ClusterSentinel untuk HA otomatis dan Cluster untuk sharding: kapan masing-masing diperlukan.
  3. MonitoringINFO, slowlog, MEMORY USAGE, dan latensi: cara menemukan big key dan penyebab latency.
  4. KeamananACL pada Redis 8: pengguna, izin per kategori perintah, password, dan disiplin paparan jaringan.
  5. Transaksi dan pipeliningMULTI/EXEC, WATCH, dan pipelining: apa yang dijanjikan, apa yang tidak, dan kapan pipelining mengubah performa.
Pengerjaan proyek 3 pelajaran

Proyek terpandu: memilih beban kerja nyata, merancang struktur data dan TTL, lalu mengimplementasikannya dengan penanganan kegagalan.

  1. Pemilihan proyekMemilih beban kerja proyek dengan kebutuhan latensi terukur: leaderboard real-time untuk portal kuis kelas.
  2. Desain dataMerancang struktur, key, dan TTL proyek leaderboard, lalu mendokumentasikannya sebagai kontrak data.
  3. ImplementasiMengimplementasikan proyek leaderboard: skrip Python, pola terintegrasi, dan penanganan kegagalan.