Memcached: WordPress sitenizde nasıl ve nasıl kullanılır?
WordPress sitenizde kaç tür önbellekleme biliyorsunuz ve kullanıyorsunuz? WP Rocket gibi bir WordPress önbellek eklentisi kullanıyorsanız, şüphesiz tarayıcıdan ve sayfanın önbellek özelliğinden kar elde ettiniz. Ayrıca gelişmiş önbellekleme seçenekleri kullanıyorsanız, siteniz hücresel önbellek ve kullanıcılara da sahiptir. Daha sonra sunucu tarafı önbellekleme (vernik veya nginx gibi) ve CDN önbellekleme vardır: Birincisi kullandığınız barındırmaya bağlıdır, ikincisi ise seçtiğiniz CDN hizmetinde. Gruba eklemek istediğiniz son önbellek türü nesne önbelleğe alınmasıdır: bu, veritabanı sorgularınızın daha hızlı çalışmasını sağlamak ve sonunda web sitenizin hızını arttırmak için önemlidir.
Bu yazıda, nesne önbelleklerinin sırlarını keşfedeceğiz ve en popüler nesne önbellek sistemlerinden birine dalacağız: memcached. Memcached, memcached önbellekleme hizmetleri için yapılan bir PHP uzantısı olan Memcache ile karıştırılmamalı ve bu yazının kapsamı dışındadır. Memcached ve nesne önbellekleme, memcached ayrıntılarına girmeden önce sıradan İngilizce olarak açıklanır, önbellek nesnesinin tam olarak ne yaptığını açıklayalım. Önbellek sayfası statik kaynakların önbelleğe alınmasını (görüntü dosyaları, html, css ve js) işlerse ve önbellek tarayıcıları tarayıcıda aynı kaynakları yönetirse, nesne önbellek veritabanınıza ayrılır.
Nesne önbelleğinin amacı, veritabanınızdaki kuyruğun sonuçlarını önbelleğe almaktır. Blogumuzda önbellekleme nesnelerinin ne olduğuna dair ayrıntılı bir açıklama bulabilirsiniz. Verimli veritabanı, hızlı web siteleri için önemli faktörlerden biridir: WordPress, doğal olarak MySQL veritabanına bağlı bir içerik yönetim sistemidir. Kullanıcı (veya gezgin) web sitenizde her talepte bulunduğunda, bir veritabanı sorgusu üretir. Siteniz veritabanına birçok istek yaşıyorsa, sorgular hızlı bir şekilde birikebilir, sunucunuzu yükleyebilir ve web sitenizi yavaşlatabilir. İyi haber şu ki, nesnenin önbellek sınıfını uzun süre tanıtıyor: WP_Object_Cache adlı sınıfın 2005’ti. WordPress çekirdeğine uygulandı. WordPress önbellek nesneleri ne yapar? Önbelleğe alma nesneleri doğuştan WordPress, karmaşık sorguların bir kopyasını saklayın ve sonuçları veritabanı tablosunda (örneğin HTTPS aktarımı gibi) saklayın. Site sayfanızda çalışan en sık kullanılan sorgular veritabanında saklanır: Bu isteğin kopyaları, açık süreyi azaltmayı ve web sitenizi daha fazla performans göstermeyi mümkün kılar. Tabii ki, bu işlem WordPress sitesinin ayrıcalıklı bir hakkı değildir: aynı şey nesne önbellek sisteminin uygulandığı tüm sitelerde gerçekleşir.
Örneğin, çok popüler bir içerik yönetim sistemi olan Drupal, benzer bir doğuştan nesne önbellek sistemi uygular. Nesne önbelleği işlev görürse, sunucunuzun herhangi bir zamanda bir sorgu sonuçlarını yeniden oluşturması gerekmez, ancak sunucu daha önce yapılan nesne önbellek katmanını kullanabilir. Nesne önbelleğini depolamak için farklı teknolojiyi kullanabilirsiniz: en popüler nesne önbellek makineleri arasında memcached, redis ve APC vardır. Memcache nedir? Memcached, e-Niaga mağazaları veya giriş/kayıt gerektiren web siteleri gibi dinamik web uygulamaları için veritabanlarının yüklenmesini kolaylaştırmak için oluşturulmuş açık kaynaklı bir dağıtılmış bellek sistemidir. YouTube, Wikipedia ve diğer büyük ve küçük web uygulamaları. Geliştirici bunu aşağıdaki gibi tanımlar: memcached, veritabanı çağrıları, yangın çağrıları veya sayfaların oluşturulması sonuçlarından küçük hakem verileri (dizeler, nesneler) için bellekte anahtar değerlerin depolanmasıdır.
(Kaynak) Bu sistem, dizeler ve nesneler için anahtar değer verilerini aşağıdakiler gibi depolar:
API çağrısı
Sayfa Oluşturma
Veritabanı Çağrı Sonuçları
Dört bileşene dayalı istemci-sunucu mimarisi kullanılarak memcached:
Mevcut Memcached Sunucu Listesini saklayan istemci-sunucu
Sunucuyu istenen “tuşa” göre alan istemci tabanlı karma algoritması.
Dahili karma tablosuna kilit değerler+ bir kombinasyonunu depolayan sunucu yazılımı
Eski verileri veya belleği ne zaman kullanacağına karar veren en az kullanılan (LRU) algoritması
Memcached Work Memcached diğer önbellek sistemleri gibi çalışır, ancak şimdi veritabanı sürecin çekirdeğidir. İş akışına beş hızlı adımda bakalım: İstemci-Server kullanıcıdan bir istek alır (yani, HTTPS aktarımı ile web sitesinden belirli URL’lere erişim);
İstemci-Server, gerekli veriler belleğinde saklanırsa, memcached sunucu ile kontrol eder;
Veriler varsa, Memacked hemen istemcinin sunucusuna döndürür;
Veriler önbellekte saklanmamışsa, Memcached veritabanına isteği devam ettirir;
İstenen veriler artık sunucuya iletiliyor ve aynı zamanda Memcache endeksi şu en son değerlerle güncelleniyor: önbellek artık gelecekte kullanılmaya hazır (bkz. Adım 3).
Genellikle, Memacked, talep yüklerinin dağıtılmasına yardımcı olan farklı bir Memacked sunucu ve istemci aracılığıyla ayarlanır.
İstemci-Server, isteğin hangi sunucunun hatırlanacağına karar vermek için karma algoritmasını kullanır. Memcached sunucunun veri paylaşmadığını belirtmek önemlidir: bu nedenle veritabanı, bir seferde yalnızca bir memcached sunucuya veri gönderir.
WordPress sitenizde memcached’i nasıl kullanıyorsunuz? WordPress sitenizde memcached kullanmanın ilk gereksinimi, barındırma sunucunuzun onu yüklemesidir. İkinci gereklilik, web uygulamanızın memcached’i destekleyebilmesidir. Memcached yalnızca RAM’e dayandığı için, çok fazla CPU kaynağı gerektirmez. Bazı web barındırma hizmetleri, daha önce bulut sunucularına yüklenmiş bir memcached sistemle donatılmıştır: A2 barındırma, Cloudways veya siteground hakkında birkaç örnek bulabilirsiniz.
Sunucunuz memcached’i destekliyorsa, büyük olasılıkla daha önce yapılmış olan memcached PHP uzantısı aracılığıyla kullanabilirsiniz. WordPress sitenizde memcached kullanmanın faydaları nelerdir? Memcached’in ana avantajı, tüm bilgilerin RAM’de saklanmasıdır: Bu, her seferinde diskten yayınlanması gerekmediği anlamına gelir. Başka bir avantaj, veri sınırının olmamasıdır: belgeler, görüntüler gibi bir dizi farklı veri depolamak için Memcached kullanabilirsiniz, ancak en önemlisi yapı çok daha karmaşıktır. Ayrıca, belirlediğiniz kullanım ortamına bağlı olarak, memcached sunuculardan birinin başarısızlığı genellikle kritik değildir. Çoğu zaman, aslında, memcached sadece geçici bilgileri depolamak veya saklamak için bir önbellek olarak kullanılır. Kalıcı veriler için kullanırsanız, verileri farklı bir sunucudan RAM’e yükleyen alternatif bir arama yöntemine geri çekebilirsiniz. Roket WP Memacked tarafından uyumlu mu? Bahçe önbelleğine odaklanan bir eklenti olan WP Rocket, nesne önbelleğini ele almaz. Yani, belirli bir memcached seçenek bulamazsınız. Bu, WP roketi ile memcached kullanamayacağınız anlamına gelmez! WP roketini ve memcached’i birlikte kullanmak için ek bir eklenti yüklemeniz gerekir.