dict:coordinates Flow
dict:coordinates:{coordinate_id} anahtarı, koordinat (latitude/longitude) 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 Koordinat Kaydı Oluşturma ve Yönetme
Bir uygulama, saha veya varlık lokasyonlarını hızlıca lookup yapmak için Redis üzerinde dict:coordinates:{coordinate_id} anahtarlarını kullanır. Aşağıda, bir koordinat kaydının oluşturulmasından silinmesine kadar geçen tipik akış adım adım gösterilmiştir.
1. Koordinat Kaydı Oluşturma (SET)
SET dict:coordinates:1 '{"id":1,"latitude":37.9189000,"longitude":32.4846000,"altitude":1016.50}'
Açıklama:
- Anahtar:
dict:coordinates:1 - Value: Koordinat objesinin JSON hali
- Tüm alanlar zorunludur (bkz: Sözleşme)
2. Koordinat Bilgisi Okuma (GET)
Bir koordinat kaydını okumak için uygulama şu sorguyu yapar:
GET dict:coordinates:1
Yanıt:
{
"id": 1,
"latitude": 37.9189000,
"longitude": 32.4846000,
"altitude": 1016.50
}
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. Koordinat Bilgisi Güncelleme (SET)
Bir koordinat kaydında değişiklik yapmak için (ör. rakım değişti):
SET dict:coordinates:1 '{"id":1,"latitude":37.9189000,"longitude":32.4846000,"altitude":1020.00}'
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. Koordinat Kaydı Silme (DEL)
Bir koordinat kaydını silmek için:
DEL dict:coordinates:1
Açıklama:
- Anahtar silinir, lookup sırasında bulunamaz.
- Uygulama, silinen koordinat 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 koordinat 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:coordinates:1 '{"id":1,"latitude":37.9189000}'
Sonuç:
- Sözleşmedeki zorunlu alanlar eksikse, uygulama katmanı validasyon hatası döner.
2. Aynı ID ile Tekrar SET
SET dict:coordinates:1 '{"id":1,"latitude":37.9189000,"longitude":32.4846000,"altitude":1016.50}'
SET dict:coordinates:1 '{"id":1,"latitude":37.9189000,"longitude":32.4846000,"altitude":1020.00}'
Sonuç:
- Son SET işlemi geçerli olur, önceki value overwrite edilir.
3. Silinen Anahtara GET
DEL dict:coordinates:1
GET dict:coordinates:1
Sonuç:
- GET işlemi null döner, uygulama fallback yapabilir.
Akış Diyagramı
İlişkili Sayfalar
- dict:coordinates Sözleşmesi — Alanlar ve JSON formatı
- dict:coordinates Ana Sayfa — Genel kapsam ve kullanım
- dict-coordinates.schema.json — JSON şeması