merhaba,
sorudan anladığım kadarıyla sizin istediğiniz veritabanı sorgularından dönen sonuçları cachelemek. bunun için en popüler cache serverlarından biri memcached. detaylı bilgiyi sitesinden alabilirsiniz: http://www.danga.com/memcached/
kabaca bu tip sistemlerin nasıl çalıştığını anlatayim. cache server'ı çalıştırırken ihtiyacınıza göre bir alanı memory'den (bellek) ayırıyorsunuz. mesela 128MB. genellikle 2'nin kuvvetlerine göre yer ayırmak daha iyi bir seçim olur. (64,128,256,512 ...) daha sonra kaydetmek istediğiniz veriye bir unique key (anahtar) vererek veritabanından gelen sonuçları tercihen array şeklinde kaydediyorsunuz. kaydederken verilerin ne kadar süreyle bellekte tutulacağını da belirtiyorsunuz. mesela 1 saat. tabi illa veritabanı kayıtlarını saklamak durumunda değilsiniz, bellekten hızlıca ulaşmak istediğiniz her türlü veriyi saklayabilirsiniz. veriye tekrardan ulaşmak istediğinizde daha önce verdiğiniz unique key ile tekrardan çağırıyorsunuz. tüm bu işler için birçok dilde hazır kütüphaneler ve fonksiyonlar mevcut. veritabanından gelen verilere unique key (anahtar) atarken direkt olarak SQL kodunun kendisini kullanabilirsiniz. cache server'lar başka bilgisayarlarda olabileceği gibi ihtiyaca göre birden çok da olabilir.
sözün özü, bu tip cachelemeler tek yönlü olarak sıkça erişilen verileri bellekte saklama prensibine dayanıyor. tek yönlüden kasıt şu; cache server'da herhangi bir veride değişiklik yaparsanız veritabanında da yapmak zorundasınız. fakat senkronize bir cache mekanizması kullanacak olursanız cache'deki değişiklikler periyodik ve otomatik olarak veritabanına da işlenebilir.
verilere anında ve hızla ulaşmanın dışında ihtiyaca göre daha basit cacheleme mekanizmaları da üretebilirsiniz. mesela periyodik olarak çalıştırılan raporlama sorgularını (günlük, haftalık, aylık, yıllık ...) bellekte tutmak pek de yararlı olmaz. bunun yerine ilgili sorguları 1 kez çalıştırıp, XML olarak sonuçları diske yazdırabilirsiniz.
ayrıca PHP script caching için zend accelerator gibi cache engine'ler de var.
kolay gelsin..


Konu Adresi (URL)
About LinkBacks
Alıntı Yaparak Yanıtla
