Skip to main content

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