Skip to main content

dict:neighborhoods Flow

dict:neighborhoods:{neighborhood_id} anahtarı, mahalle (neighborhood) 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 Mahalle Kaydı Oluşturma ve Yönetme

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

1. Mahalle Kaydı Oluşturma (SET)

SET dict:neighborhoods:1 '{"id":1,"name":"Yazır","district_id":1,"post_code":"42250"}'

Açıklama:

  • Anahtar: dict:neighborhoods:1
  • Value: Mahalle objesinin JSON hali
  • Tüm alanlar zorunludur (bkz: Sözleşme)

2. Mahalle Bilgisi Okuma (GET)

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

GET dict:neighborhoods:1

Yanıt:

{
"id": 1,
"name": "Yazır",
"district_id": 1,
"post_code": "42250"
}

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. Mahalle Bilgisi Güncelleme (SET)

Bir mahalle kaydında değişiklik yapmak için (ör. adı değişti):

SET dict:neighborhoods:1 '{"id":1,"name":"Yazır Mahallesi","district_id":1,"post_code":"42250"}'

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. Mahalle Kaydı Silme (DEL)

Bir mahalle kaydını silmek için:

DEL dict:neighborhoods:1

Açıklama:

  • Anahtar silinir, lookup sırasında bulunamaz.
  • Uygulama, silinen mahalle 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 mahalle 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:neighborhoods:1 '{"id":1,"name":"Yazır"}'

Sonuç:

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

2. Aynı ID ile Tekrar SET

SET dict:neighborhoods:1 '{"id":1,"name":"Yazır","district_id":1,"post_code":"42250"}'
SET dict:neighborhoods:1 '{"id":1,"name":"Yazır Mahallesi","district_id":1,"post_code":"42250"}'

Sonuç:

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

3. Silinen Anahtara GET

DEL dict:neighborhoods:1
GET dict:neighborhoods:1

Sonuç:

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

Akış Diyagramı


İlişkili Sayfalar