Redis Yazı Serisi 4 – On-demand Caching, Pre-populate Caching, Absolute Time ve Sliding Time Kavramları

Merhaba,

Redis yazı serisinin bu dördüncü makalesinde belirli kavramsal temelleri oturtabilmek amaçlı kalem oynatacak ve On-demand Caching, Pre-populate Caching ve Sliding Time kavramlarına açıklık getirmeye çalışacağız.

On-demand Caching Nedir?

Cachelenecek dataların kullanıcıdan talep geldikten sonra cachelenmesidir.

Pre-populate Caching Nedir

Cachelenecek dataların uygulama ayağa kaldırılır kaldırılmaz cachelenmesidir. Genellikle static veriler tercih edilir. Örneğin; veritabanındaki ‘şehirler’ tablosu verisel açıdan güncellenmesi neredeyse mümkün olmayan bir içeriğe sahip olduğu için ilk kullanıcıdan gelecek isteklerinde direkt olarak cacheden karşılanması performans açısından doğru hamle olacaktır.


Herşeyin bir ömrü olduğu gibi cachelenecek datalarında ne kadar süreliğine cache’de tutulacağına dair de belirli bir süre mevcuttur. Ve tabi ki de bu süreyi kendi irademizle belirleyebiliriz. Cache’de ki verilerin ömrünü belirlemek demek, o süre zarfında tekrar tekrar ilgili cache’i güncel verilerle tazelemek demektir. Dolayısıyla burada cache süresini belirleyebilmek için tercih edebileceğimiz ‘Absolute Time’ ve ‘Sliding Time’ olmak üzere iki yaklaşım mevcuttur.

Absolute Time Nedir?

Cache’de ki datanın ne kadar tutulacağına dair net ömrünün belirtilmesidir. Belirtilen ömür sona erdiğinde cache direkt olarak temizlenir.

Sliding Time Nedir?

Sliding Time
Cachelenmiş datanın memory’de belirtilen süre periyodu zarfında tutulmasını belirtir. Belirtilen süre içerisinde cache’e yapılan erişim neticesinde de datanın ömrü bir o kadar uzatılacaktır. Aksi taktirdir belirtilen süre zarfında bir erişim söz konusu olmazsa cache temizlenecektir.

Tabi burada aralıklı erişimler neticesinde cache’de tutulan datanın uzun vadeli tutulması, süreçte veritanında olasılığı yüksek olan veri modifikasyonlarının neticesindeki güncel verilerle cache’in tazelenmesini engelleyeceğinden dolayı bayat verilere sebebiyet verebilir. İşte böyle bir durumu engelleyebilmek için cachelenmiş datanın ömrünü hem Absolute hem de Sliding yaklaşımlarıyla belirlememiz daha doğru olacaktır.

Sliding Time And Absolutime Time

Yukarıdaki şemada da görüldüğü üzere durumu senaryotik örneklendirirsek eğer; Sliding Time olarak 2 dk, Absolute Time olarak ise 10 dk verilen datanın cache’de ki ömrü; 2 dk içerisinde erişim isteği geldiği taktirde 2 dk uzatılacaktır. Bu uzatlamalar totalde 10 dk kadar olacaktır. Eğer 2dk içerisinde bir istek gelmezse ya da sliding son periyotta ise artık cache geri dönüşsüz silinecektir.

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

1 Cevap

  1. 14 Nisan 2020

    […] Redis Yazı Serisi 4 – On-demand Caching, Pre-populate Caching, Absolute Time ve Sliding Time … […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*