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
- dict:province Sözleşmesi — Alanlar ve JSON formatı
- dict:province Ana Sayfa — Genel kapsam ve kullanım
- dict-province.schema.json — JSON şeması