Sürekli değişen veri için cache kullanmak, cache'in kullanıldığı ihtiyaçlar dışındadır. Mantık olarak yanlış bir işlem yapmış olursunuz.
Performansa dayalı iş illada bunu yapacağım diyorsanız.
Elinizdeki datayı öncelikle sınıflandırın, bu datanın hangileri benim için önemlidir hangileri önemli değildir.
Sonrasında önemsiz atfettiğinzi ve sürekli değişen data için belirli bir maksiumum değer belirlemelisiniz ve kritik noktanız o olmalı, mesela 200MB RAM benim datam için yeterli, yada 1GB kaynağım var ben bu işe 1GB harcarım sıkıntıda olmaz gibi..
Değişen veriler için diğer kıstas ise, değişen datanın boyutu.. Arkadaş memcached 'den bahsetmiş mesela.. Çok güzel bir cache server'ıdır lakin eğer sizin saklayacağınız datanın ;
key, value = > "kullanıcıProfilininHepsi" -> (KullanıcıProfilObjesi);
KullanıcıProfiliObjesinin boyutu 2 MB'ı geçiyorsa, memcached sıçar.. maksimum 2MB gibi bir limitasyonu vardır.
Datalar küçük ve sürekli değişiyorsa, bu süreklilikte önemli sürekli iden kasıt nedir? her saniye değişen datamı yoksa 2 dk'da bir değişecek olan bir datamı? Mesela bu sitedeki kullanıcıların profilindeki data mevcuttur. 1-2KB'ı geçmez.. Bu data bilgiside her daim değişmez ama bazı bazı anlık değişiklikler olabilir. Mesela bunları cache'te tutabilirsiniz, illada cache'te tutacam diyorsanız zorunluluksa..
Diğer bir alternatifiniz, mesela sitenizdeki kullanıcıların birbir profiline yaptıkları yorumlar o kadar önemli bir data değil, o zaman documen based bir database'e basın gitsin bu datayı, mongodb en ünlüsü..
Tüm ihtiyaç analizinizi ve datanızın analizini yaptıktan sonra cache işlemleri için değişen datalar için geliştirilmiş framework, memcached'i yazan arkadaşlarımızın memcached üzerine geliştirdiği Couchbase Cache Server'ıdır.
Earlang ile geliştirmişler.. Oldukçada iyidir. Kaynak konusunda memcached kadar hafif değildir ama yetenekleri, ve yönetimi memcached 'e göre oldukça üstündür..
Sevgilerle..