Ana içeriğe geç

dict:province Flow

title: dict:province Flow sidebar_label: dict:province Flow sidebar_position: 1.5 description: dict:province anahtarının tipik yaşam döngüsü, CRUD akışı ve örnek senaryolar. hide_title: false noIndex: true toc_max_heading_level: 3 pagination_prev: null pagination_next: null

dict:province Flow

dict:province:{province_id} anahtarı, il (province) lookup işlemleri için kullanılan, CRUD odaklı bir Redis sözlük anahtarıdır. Bu bölümde, anahtarın tipik yaşam döngüsü ve uygulama katmanındaki kullanım akışı adım adım senaryolarla anlatılır.


Senaryo: Yeni Bir İl Kaydı Oluşturma ve Yönetme

Bir uygulama, Türkiye'deki illeri hızlıca lookup yapmak için Redis üzerinde dict:province:{province_id} anahtarlarını kullanır. Aşağıda, bir il kaydının oluşturulmasından silinmesine kadar geçen tipik akış adım adım gösterilmiştir.

1. İl Kaydı Oluşturma (SET)

Uygulama, yeni bir il eklemek istediğinde aşağıdaki işlemi yapar:

SET dict:province:42 '{"id":42,"name":"Konya","phone_code":332,"plate_code":42}'

Açıklama:

  • Anahtar: dict:province:42
  • Value: İl objesinin JSON hali
  • Tüm alanlar zorunludur (bkz: Sözleşme)

2. İl Bilgisi Okuma (GET)

Bir il kaydını okumak için uygulama şu sorguyu yapar:

GET dict:province:42

Yanıt:

{
"id": 42,
"name": "Konya",
"phone_code": 332,
"plate_code": 42
}

Açıklama:

  • Value her zaman JSON formatındadır.
  • Eğer anahtar yoksa, uygulama fallback olarak ana veri tabanına (ör: PostgreSQL) başvurabilir.

3. İl Bilgisi Güncelleme (SET)

Bir il kaydında değişiklik yapmak için (ör. telefon kodu değişti):

SET dict:province:42 '{"id":42,"name":"Konya","phone_code":333,"plate_code":42}'

Açıklama:

  • Güncelleme işlemi de SET ile yapılır, eski değer üzerine yazar.
  • Tüm alanlar güncel JSON ile tekrar yazılır.

4. İl Kaydı Silme (DEL)

Bir il kaydını silmek için:

DEL dict:province:42

Açıklama:

  • Anahtar silinir, lookup sırasında bulunamaz.
  • Uygulama, silinen il için ana veri tabanına başvurabilir.

Akış Özeti ve Notlar

  • Tüm işlemler atomic ve idempotenttir.
  • Value formatı her zaman sözleşmeye uygun JSON'dur.
  • Sadece il lookup için kullanılır, başka veri tutulmaz.
  • Genellikle backend servisleri tarafından yazılır/okunur.
  • Büyük veri setlerinde performans için SCAN önerilir (bkz: index.mdx).

Hata ve Edge Case Senaryoları

1. Eksik veya Hatalı JSON

SET dict:province:42 '{"id":42,"name":"Konya"}'

Sonuç:

  • Sözleşmedeki zorunlu alanlar eksikse, uygulama katmanı validasyon hatası döner.

2. Aynı ID ile Tekrar SET

SET dict:province:42 '{"id":42,"name":"Konya","phone_code":332,"plate_code":42}'
SET dict:province:42 '{"id":42,"name":"Konya","phone_code":333,"plate_code":42}'

Sonuç:

  • Son SET işlemi geçerli olur, önceki value overwrite edilir.

3. Silinen Anahtara GET

DEL dict:province:42
GET dict:province:42

Sonuç:

  • GET işlemi null döner, uygulama fallback yapabilir.

Akış Diyagramı


İlişkili Sayfalar