Dağıtık İT sistemleri ile çalışırken ölçeklenebilir önbellekleme için dağıtılmış önbelleklerin (Redis Cluster, Memcached Cluster) kullanılması mantıklıdır. Bu önbellekler sharding, replikasyon destekler ve düğümler arasında yükü dinamik olarak dengeleyebilir.
Önbellek katmanı tarafsız bir istemci API'si üzerinde uygulanır. Küme içindeki yük değiştiğinde, otomatik olarak düğümler eklenir veya kaldırılır (otomatik ölçeklendirme).
Örnek: otomatik olarak yeni düğümleri keşfeden bir istemci kullanarak dinamik olarak adapte olmuş Redis Cluster.
import rediscluster rc = rediscluster.RedisCluster(startup_nodes=[{"host": "127.0.0.1", "port": "7000"}]) rc.set('key', 'value')
Anahtar özellikler:
Memcached küme modunda düğüm arızasına karşı veri tutarlılığını garanti eder mi?
Hayır. Memcached, düğüm yeniden başlatıldığında veya arızalandığında verileri saklamaz. Kalıcılık için daha iyi bir seçenek Redis kullanmaktır.
Gerçek yaşam süresi < 1 saniye olan verileri önbelleğe almak mümkün mü?
Bu verimsizdir - eski sürümleri yönetmek daha zor olacaktır, genellikle böyle nesneleri önbelleğe almamak daha iyidir.
Geçersiz önbellek (stale cache) veri bütünlüğünü etkiler mi?
Etkileyebilir. Senkronizasyon kopma riskini azaltmak için zorunlu geçersiz kılma mekanizması (örneğin, pub/sub veya olay tabanlı mekanizma ile) uygulanmalıdır.