Günümüzde memcached gibi bir önbellek sistemi güveniyor (dinamik siteler için) deli değil midir?

4 Cevap php

Ben sadece tüm önbelleğe dayanmaz bazı eski eskimiş php çerçeve kullanır ve hemen hemen tamamen veritabanı bağımlı müvekkilimin uygulamalardan birini incelerken.

Ben really modası geçmiş, çünkü ben sadece sıfırdan yeniden yazmak olacak ve bu yeniden yazma ben bir önbelleğe alma sistemini uygulamak istiyorsanız rakam. Herkes bu önce yapmış ise ben birkaç ipucu alabilir eğer güzel olurdu.

  • Rewrite PHP veya Python ya yapılacaktır
  • Ben bu uygulama öncesi ve sonrası profile eğer güzel olurdu
  • Ben hosting ile sınırlı değilim bu yüzden benim kendi sunucusu var

4 Cevap

Sorunların zor kısmı genel olarak "performans" olarak tanımladığı - o (== yüksek isabet oranı) doğru çalıştığında önbelleğe alma, gerçekten ile latency yardımcı olabilir birkaç genel amaçlı tekniklerden biridir. Sadece sorun daha fazla donanım atarak performans QPS (saniyede sorgu) tedbirler artırabilirsiniz - ancak gecikme (yani, bunu yapmak için sadece bir ay almaz bu şekilde çalışmıyor, bir bunun üzerinde çalışmak için dokuz anneler ;-) ayarlamak bebekler eğer.

Ancak, önbelleğe tarafından kullanılan ana kaynak memory (RAM veya bu olabilir gibi bir disk) tipik olarak. Eğer gözlemlemek tek performans sorunu bellek kullanımı olduğu bir açıklamada söz gibi, önbelleğe alma yardımcı olmaz: sadece daha az kullanılabilir bir "genel fon" olarak bırakarak, önbelleğe alma amaçlı kullanmak için bellek kısmını tahsis olur. California sakini olarak ben çok fazla kaynak tahsis edilir ne olur ilk elden tanıklık ediyorum ve temiz bir vicdanla eylem böyle bir ders tavsiye olamazdı -!)

Siteniz performans ince ise önbelleğe eklemek için hiçbir neden yok. Sitelerin sürü hiç bir önbellek olmadan olsun, ya da bir dosya sistemi tabanlı önbellek hareket seçebilirsiniz. Bu memcached sadece ihtiyacınız süper yüksek trafikli siteler bulunuyor.

Ne "deli" var ikincisi zor önbelleğe alma ekleyerek yapar bu kod mimarisi (ya da mimari bir eksikliği) olduğunu.

Python seçimlerinizin biri olduğu için, Django ile gitmek istiyorum. Önbelleğe alma mekanizması Dahili ve ben / profilleme geliştirirken bana yardım etmek this debug_toolbar kullanarak oldum.

Bu arada, memcached not Eğer anlattığım şekilde çalışır. Bu bellekte, onunla ilgisi değerlere benzersiz anahtarlar eşler. Csh dosyaları veya veritabanı sorgular. Ne bir değer depolamak önbelleğe olacak budur.

Performans sorunları var (veya olacak) Oh, ve önbelleğe alma, yalnızca değer. Eğer ihtiyacınız yoksa önbelleğe ile "güvenerek değil" yanlış bir şey yok. Prematüre optimizasyonu% 99 kötülük!

Kod temeli ve trafik desen özel niteliğine bağlı olarak, hatta yeniden yazma tüm site gerek olmayabilir. Bu sayfa taleplerinin% 99.9 önbellek üzerinden atlanabilir eğer korkunç verimsiz kod böyle büyük bir anlaşma değildir.

PHP veya Python seçerken, siteyi (ya da hatta bu çağrı yapmak alırsanız) ev sahipliği nereye gittiğimizi anlamaya emin olun. Benim müşteri çoğu zaten bir web sunucusu kurmak ve Python bir seçenek değildir. Ayrıca arayüzü istediğiniz veritabanları / harici programların PHP veya Python iyi desteklendiğinden emin olun.