Önbellek neden kullanılır?

Her şey basit. Önceden saklanan bilgilerin alınması, ilk nesilden çok daha hızlıdır (10 kat veya daha fazla). Radikal bir örnek istiyorsanız, bir kitap, yazarlarının bilgilerinin uzun vadeli bir önbelleğidir. Bu bilgiyi biriktirmek yıllar alabilir, bu önbelleği okumak ise çok daha hızlıdır.

Ama hadi Joomla'ya geri dönelim ve daha kesin olmak gerekirse, burada web uygulaması önbelleğe alma - geçici statik kopyalar oluşturma ile uğraşıyoruz. dinamik sayfalar(veya daha küçük bilgi birimleri). Önbelleğe alma, web uygulamalarının doğasında vardır, çünkü tipik bir web sitesi aynı içeriği tekrar tekrar oluşturur ve önbellek olmadan, her sayfa görünümü için her şeyin yeniden oluşturulması gerekir. Önbelleğe alma sistemi, kod tarafından oluşturulan bilgileri geçici olarak bir önbellek nesnesinde saklar ve bir sonraki kullanıcı tarafından istendiğinde geri verir.

Joomla'da Önbellek Türleri

Sayfa önbelleği

fotoğraf çeker tüm sayfa, her şey dahil: bileşenler, modüller, eklentiler ve bir şablon. Bu, en hızlı ancak en az esnek önbelleğe alma yaklaşımıdır. Etkinleştirmek için "Sistem - Önbellek" eklentisini etkinleştirmeniz gerekir.

Aşamalı önbellek

Bu önbellek türü Joomla 1.6'da tanıtıldı. Her benzersiz modül setinin (genellikle her sayfanın) anlık görüntüsünü alır. Tüm modülleri etkiler ve modül önbelleğinin üzerinde, ayarlarını geçersiz kılarak bir katman olarak çalışır. İçeriği her ziyaretçi için ayrı ayrı gösterir. Genel site ayarlarında önbellek düzeyi "Aşamalı" olarak ayarlandığında etkinleştirilir.

Standart önbellek (Konservatif önbellek)

Her modül önbelleği üzerinde ayrı ayrı daha hassas denetime ihtiyacınız varsa, standart önbelleğe alma düzeyini kullanın. Aşamalı önbellekten bir başka fark, aynı önbelleğe alınmış içeriği tüm web sitesi ziyaretçilerine göstermesidir.

Modül ve Bileşen Görünüm Önbelleği

Her ikisi de bir bileşenin veya modülün tam çıktısının statik bir kopyasını oluşturduğundan, bir tür grup oluştururlar. Bu en yaygın önbellek türüdür ve bazen genel olarak Joomla'da önbelleğe alma ile eşitlenir.

Olumlu yanı, hız açısından iyi performans göstermesi. Ve olumsuz yanı, herhangi bir kullanıcı etkileşimini devre dışı bırakmasıdır.<->eklenti<->önbelleğe alınan kopyanın süresi dolana kadar çerçeve. Bu, kullanıcı eylemlerine yanıt veren veya sık sık değişen içeriği görüntüleyen bileşenler veya modüller için uygun olmadığı anlamına gelir.

Bir modülün veya bileşenin önbelleğe alınmış kopyası yalnızca kendi çıktısını içerdiğinden, $document->addStyleSheet() gibi yöntemler kullanılarak çağrılan herhangi bir harici dosya dahil edilmez. Çeşitli geçici çözümler geliştirilmiştir, ancak bunların tümü, önbelleğe alma kullanımının etkisini azaltan ek bilgi işlem kaynakları gerektirir.

Bileşen görünümü önbelleğe alma

Bileşen görünümü, denetleyicinin display($cachable, $safeurlparams) yöntemi kullanılarak önbelleğe alınır. Bunu yapmak için $cachebale parametresi true olarak ayarlanmalı ve bir dizi URL parametresi ve bunların filtre türleri $urlparams parametresinden geçirilmelidir:

$önbelleğe alınabilir = doğru; $safeurlparams = array("catid" => "INT", "id" => "INT", "cid" => "ARRAY", "limit" => "UINT", "limitstart" => "UINT", "filter_order" => "CMD", "filter_order_Dir" => "CMD", "filter-search" => "STRING", "lang" => "CMD", "Itemid" => "INT"); parent::display($cachable, $safeurlparams);

Bu durumda, URL parametreleri dizisi benzersiz bir önbellek kimliği oluşturur.

Modül önbellek modları

5 tane var farklı modlar modül önbelleğe alma. Bunlardan üçü, modülün bildirim XML dosyasındaki önbellek modu alanı aracılığıyla etkinleştirilir:

  • statik - aynı modül parametrelerine sahip tüm sayfalar için bir önbellek dosyası kullanılacaktır. Değişmeyen modüller için önerilir.
  • itemid - Itemid değiştirilirken değişir. Bu mod, menüler, içerik görüntüleri vb. gibi sayfadan sayfaya değişen dinamik modüller için en uygundur.
  • oldstatic - Joomla 1.5 moduyla geriye dönük uyumlu.

Doğrudan modülden iki önbelleğe alma modu daha çağrılmalıdır:

  • safeuri - Önbellek kimliği, tıpkı bir bileşende olduğu gibi bir dizi URL parametresinden oluşturulur. Modül, Itemid yerine URL parametrelerine bağlıysa (örneğin, bir kategoriye bağlı olarak bir resim görüntüleyen bir modül) bu modu kullanın. $cacheparams->modeparams özelliği, bir dizi URL parametresi ve bunların filtre türleridir.
  • Id - modül, $cacheparams->modeparams aracılığıyla iletilen kendi formülüne bağlı olarak kendi önbelleğini ayarlar

Bu iki modu kullanmak için, önbellek modu alanı yerine bildirim XML dosyasındaki owncache alanını kullanın:

moduleCache() yöntemine iletilen nesne özellikleri kendi kendini açıklayıcı niteliktedir. Bir örnek, safeuri modunu kullanan ve önbelleğe alınmamış modRelatedItemsHelper::getList($params) işlevinin yerini alan ilgili öğeler modülüdür (mod_ Related_items):

$cacheparams = yeni stdClass; $cacheparams->cachemode = "safeuri"; $cacheparams->class = "ModRelatedItemsHelper"; $cacheparams->method = "getList"; $cacheparams->methodparams = $params; $cacheparams->modeparams = array("id" => "int", "Itemid" => "int"); $list = JModuleHelper::moduleCache($module, $params, $cacheparams);

geri arama önbelleği

Bu önbellek türü, bir uzantının farklı bölümlerinin ayırt edilmesini ve yalnızca önbelleğe alınması gerekenler için önbelleğe alınmasını sağlarken, dinamik bölümleri önbelleğe alınmadan bırakır. Bir işlev çağrısının sonuçlarını kodda önbelleğe alır.

Çıkış önbelleği

Komut dosyasının bir bölümünün çıktısını önbelleğe alır. Bu, esas olarak önbelleğe alma ile çıktı arabelleğe almadır ve oldukça nadiren kullanılır.

Ham önbellek

Herhangi bir veri öğesini önbelleğe alır. Tamamen geliştirici tarafından kontrol edilir - neyin kaydedileceği, ne zaman kaydedileceği ve kaydedilen öğelerin nasıl sınıflandırılacağı (önbellek kimliği). Bu tür önbellek genellikle Joomla çekirdeği tarafından çeşitli işlemler için kullanılır: bileşen listesi, modül listesi, menü ağacı, kullanılabilir diller, kullanıcı grupları vb.

Geçici çözümler

Geçici çözümler, bir modül veya bileşenden stil dosyalarını veya javascript'i ekleyememek gibi bilinen önbelleğe alma sınırlamaları etrafında çalışır. Bileşen görünümü önbelleğini ve önbelleğini kullanırken geri aramak, belirli geçici çözümleri etkinleştirebilir veya devre dışı bırakabilirsiniz. Yalnızca önbelleğe alınmış işlev üstbilgiyi veya yolu değiştirdiğinde kullanılmalıdır.

setGeçici çözümler

JCache::setWorkarounds($data,$options=array()) yöntemi, geçici çözümlerle birlikte önbelleğe alınacak verileri hazırlar ve aşağıdaki seçenekleri kabul eder:

  • nopathway - yol verilerini kaydetme
  • nohead - başlık verilerini kaydetme
  • nomodules - modül verilerini kaydetme
  • modül modu - nohead 0 ise, şu modül verilerini saklamayın: başlık , açıklama , bağlantı , metaTag'ler

getGeçici çözümler

JCache::getWorkarounds($data,$options=array()) yöntemi, geçici çözümlerle kaydedilen verilere geçici çözümler uygular. Başlığı, yolu ve modülleri yeniden oluşturur ve kaydedilen ana verileri döndürür. Otomatik olarak çalışır - belirli bir geçici çözüm, yalnızca verileri ayrı olarak kaydedilmişse yürütülür.

Geri arama önbelleği ve ham önbellek kullanma arasındaki fark

Bir bileşen geliştirirken, özellikle basit bileşenler için genellikle bir görünüm önbelleği yeterlidir. Ancak bileşen anında içerik oluşturuyorsa, farklı bir önbellek türü seçmek en iyisidir. Böyle bir durumda, bir geri arama önbelleği veya ham önbellek kullanışlı olacaktır.

Bir işlev geri çağırma önbelleği, önbelleğe alınmamış bir işlevin döndüreceği sonucun tam olarak aynısını döndürür, yalnızca bu sonuç önbelleğe alınır. İşlev, yalnızca ilk çağrıldığında doğrudan çağrılır.

JFactory::getCache() ile önbelleğe almayı çağırıyoruz ve bir geri arama önbelleği kullanırsak kodumuz şöyle görünmelidir:

$önbellek = JFactory::getCache("bir grup"); $sonuç = $önbellek->get(dizi("bir sınıf", "bir yöntem"), $metodparams, $id, $geçici çözümler, $geçici çözüm seçenekleri);

get() yöntemindeki son üç parametre isteğe bağlıdır.

Bunun ham önbellekte kullandığımız get() yöntemiyle aynı olmadığını unutmayın. Geri arama önbelleği, varsa verileri otomatik olarak getirir. Hiçbiri yoksa, geri aramayı yürütür, geri aramadan gelen verileri döndürür ve bir sonraki aramaya kadar saklar. Geri arama önbelleğinde store() yöntemi yok!

Ham bir önbellek kullanırken, geliştiricinin doğrudan erişimi vardır. yöntemleri al() ve store() , ve geliştirici mantıktan sorumludur. Bu önbellek, bir işlev çağrısı değil (örneğin: xml verileri, resimler, ürün açıklamaları vb.) bilgileri kaydetmeniz gerektiğinde veya bir sayfadan diğerine büyük miktarda veri aktarmanız gerektiğinde kullanışlıdır.

Ham önbelleği kullanma kodu aşağıdadır:

$önbellek = JFactory::getCache("bir grup", ""); if (!$somevariable = $cache->get("cacheId")) ( // eylemleri gerçekleştirin ve sonucu $somevariable'da saklayın // $somevariable'ı önbellekte saklayın $cache->store($somevariable, "cacheId") ; )

Ham önbelleği kullanmak için, getCache() yöntemine ikinci parametre olarak boş bir dize iletmeliyiz.

Birkaç önbellek aynı anda çalışırsa ne olur?

Önbellek türleri, birbirinin üzerinde opak katmanlar olarak çalışır (paralel olarak çalışan bileşenin modül/görünüm önbelleği hariç). Bunu anlamak için, sayfa önbelleğinin üst seviyeyi temsil ettiği, geri arama, çıktı ve ham önbelleklerin alt seviyeyi temsil ettiği bir web sayfasına yukarıdan baktığımızı hayal etmeliyiz. Üst seviyelerin alt seviyelerle örtüştüğü ve örneğin sayfa önbelleğini kullanırken önbelleğin geri kalanının çalışmayı durdurduğu ortaya çıktı.

Ancak bunun için farklı zamanlar kullandığımızda bir istisna vardır. farklı şekillerönbellek. Örneğin, sayfaları kısa bir süre için önbelleğe alabilir ve görüntüleri uzun süre önbelleğe alabiliriz. Bu durumda, sayfa oluşturulurken görüntü önbellekten çekilecektir.

Önbellek İşleyicileri

Önbellek işleyicileri işçilerdir. Tüm kaba işleri yapan ve seçilen medyaya bilgi kaydeden onlardır. Önbelleği kullanmak için en az bir önbellek işleyicisi mevcut olmalıdır.

JotCache (şimdiki değeri) serbest bileşen siteyi hızlandırabilen ve sunucu yükünü azaltabilen Joomla'yı önbelleğe alma. Önceki makalede "JotCache'e Genel Bakış. Önbelleğe Alma Joomla 3 »Uzantının ana özelliklerini, yapılandırmasının genel "algoritmasını" inceledik, JotCache ile / olmadan sitenin testleri ve sonuçları hakkında bilgi sahibi olduk ve arayüzünün daha ayrıntılı bir incelemesine başladık. Bu makalede, sitenin "öğelerinin" önbelleğe alınmasından hariç tutulması ve Joomla önbellek eklentisinin ayarları hakkında konuşacağız.

Joomla 3.6, önbellek sistemi açısından bazı iyileştirmelere sahiptir: Joomla'nın tek tuşla önbellek temizleme ve ters önbelleğe alma desteği. Ancak bunu göz önünde bulundurarak bile JotCache, özellikle ince ayar ve dinamik sayfalar ve site öğeleri için önbelleğe alma sorunlarını çözme.

URL'yi hariç tut

Bölümde URL'yi hariç tut(aşağıdaki resim) JotCache, belirli bileşenler tarafından oluşturulan sayfaların önbelleğe alınmasını etkinleştirmenizi veya devre dışı bırakmanızı sağlar. Lütfen JotCache sistem eklentisinin ayarlarında bu bölümün ne için olduğunu belirlediğinizi unutmayın - önbelleğe alınmaya dahil edilmek veya bundan hariç tutulmak (Eklenti sekmesi, seçenek URL önbelleğe alma bölümü). Bu ayarla bağlantılı olarak, bölüm çağrılabilir. URL'yi dahil et. O zaman içinde belirtilen tüm kurallar, bu sayfaların Joomla önbelleğine dahil edilmesi gerektiği anlamına gelecektir. İleride “exclude” yazdığımda eklenti ayarlarına bağlı olarak dahil etmenin mümkün olduğu anlaşılıyor.

Tüm bileşenin önbelleğe alınmasını hariç tutmak gerekli değildir. Örneğimde, Ccomment Pro yorumları ve SEF bileşeni sh404SEF, AJAX önbelleğinden tamamen hariç tutulmuştur. Ccomment Pro, sayfaların kopyalanmasıyla ilgili bir sorun nedeniyle hariç tutuldu, ancak var olmayan bir sayfa ilk kez istendiğinde, sunucunun bir 404 yanıtı döndürdüğü ve bu var olmayan sayfa için sonraki isteklerde sh404SEF hariç tutuldu - 200, yanlış URL'ye sahip sayfa Joomla önbelleğine girdiğinden beri.

Bir bileşenin tüm sayfalarını değil, URL'si belirli istekleri içeren tek tek sayfalarını önbelleğe almaktan hariç tutabilirsiniz. Örneğin, bu JoomShopping 4'ü önbelleğe almak için yapıldı (aşağıdaki şekil). Bunu yapmak için sütunda İstisnaları ve Sorgu Seçeneklerini Görüntüleme zıt "jshopping" sorgu parametreleri virgülle ayırarak eklendi: "controller=cart,controller=user,controller=checkout,controller=wishlist,controller=search" (tırnak işaretleri olmadan). Ayrıca, sepetin yerleştirildiği şablon konumunu hariç tutun.


VirtueMart 3'ün doğru şekilde önbelleğe alınması için "cart,user,orders,askquestion,invoice,pluginresponse,state"i istisna olarak ayarlamanız gerekir. Ayrıca, sepetin yerleştirildiği şablon konumunu hariç tutun.

Sorgu parametreleri, önbellek sorununun oluştuğu sayfanın URL'sinde görüntülenebilir. CNC'yi etkinleştirdiyseniz veya CNC olmayan URL'leri görmek için veya sekmede devre dışı bıraktıysanız Gözden geçirmek JotCache'de "sorun" sayfasının yanındaki göz simgesine tıklayın.

404 sayfası ve sh404SEF örneğinde, sorgu parametresi istisnalarını "error404" olarak ayarlamak yeterlidir.

Pozisyonu hariç tut

Siteniz, örneğin çevrimiçi mağazalar için para birimi değiştirici modülü gibi içeriği önbelleğe almak için kritik olan modüller kullanıyorsa, bu bölüm(Aşağıdaki şekil) benzer bir modülün bulunduğu şablonun konumunu önbelleğe almaktan hariç tutabilirsiniz.

Şimdiye kadar tartışılan tüm önbelleğe alma, sunucu tarafında önbelleğe almadır. İndirme hızını önemli ölçüde artırır ve sunucu üzerindeki yükü azaltır (sayfa oluşturma süresini azaltarak).

Ancak tarayıcının istemci tarafında önbelleğe alınması, siteyi yüklemeden kullanıcının sayfaya erişim hızını önemli ölçüde artırabilir. Tarayıcıda önbelleğe alınan sayfalar site sunucusundan yüklenmez. Böyle bir önbellek yalnızca çok statik sayfalar için kabul edilebilir. Örneğin şirket bilgileri, ödeme ve teslimat koşulları vb. Sonuç olarak, böyle bir sayfayı ziyaret ettikten sonra, kullanıcının tarayıcısı, sekmedeki JotCache ayarlarında ayarladığınız tarayıcı önbelleğinin tüm ömrü boyunca bu sayfayı almak için sitenin sunucusuyla iletişim kurmayacaktır. Temel. Bir istisna var - kullanıcı tarayıcısının önbelleğini temizledi veya sayfa yenilemeye zorladı.

Bu seçeneğin JotCache eklenti ayarları sekmesinde çalışması için seçeneği etkinleştirilmelidir Tarayıcı önbelleğe alma (açılır pencereye bakın!).

Gerçekte sitelerin çok az sayfasının tarayıcıda önbelleğe alınabileceği göz önüne alındığında, JotCache'de aşağıdaki ilke çalışır: adresleri veya adresin bir kısmı bölümde belirtilmemişse sayfaları tarayıcıda önbelleğe almayın Tarayıcı önbelleğini etkinleştir(Resim aşağıda).


JotCache önbelleğe alma eklentisi

Ayarların çoğu JotCache sistem eklentisinde toplanır. Ayarlar beş sekmeye ayrılmıştır.

  1. Eklenti.
  2. Tanım. Geliştiricinin web sitesinde JotCache'in kısa bir metin açıklaması ve yardım sistemine bir bağlantı vardır ( ingilizce dili).
  3. Önbellek modları.

Bu sekmelere daha ayrıntılı bakalım. Sadece bence çoğu web yöneticisi için faydalı olacak seçenekler üzerinde duralım. Seçeneklerin Rusça araç ipuçlarıyla donatıldığını ve onlar için genişletilmiş İngilizce belgelerinin mevcut olduğunu hatırlatmama izin verin.

Eklenti

Bu sekmede (aşağıdaki resim), sunucu önbellek ömrünü ayarlayabilirsiniz (seçenek Önbelleğe Alma Süresi), Joomla tarayıcı önbelleğini etkinleştirin (seçenek Tarayıcı önbellek ömrü) ve otomatik önbellek temizlemeyi etkinleştirin.

JotCache kullanmanıza izin verir farklı modlar tarayıcıya/cihaza bağlı olarak Joomla önbelleğinin nasıl çalıştığı (aşağıdaki şekil). Bu, bir sitenin görüntüsündeki çakışmaları çözmek için yararlı olabilir. Özellikle Internet Explorer durumunda.

  • İstisna. Site önbelleği kullanmadan yüklenecektir.
  • Genel. Bu tür tarayıcı için sayfanın içeriği tek bir dosyada saklanır. paylaşılan önbellek.
  • Bireysel. Sayfa içeriği, kendi özel önbellek deposunda depolanır.

Seçenek özellikle dikkat çekicidir Botları hariç tut. Aktive ederek dönüşü zorlarsınız arama motorlarıönbelleği kullanmadan site sayfaları. Bu, AJAX yorumlarına sahip sayfaların içeriğini çoğaltma sorunlarından kurtulmama yardımcı oldu. Arama robotları sitenizde somut bir yük oluşturmuyorsa, bence onlara önbellekten değil en "taze" içeriği vermek daha iyidir.

JotCache, önbellek dosyalarını hem doğrudan barındırma sunucunuzun sabit veya SSD sürücüsünde - "Dosya"da hem de rasgele erişim belleği sunucular - "Memcache" veya "Memcached" (aşağıdaki resim). "Memcache" veya "Memcached" kullanabilmek için sunucunuzda/hostinginizde böyle bir imkana sahip olmanız gerekir. Bir VPS'niz veya özel bir sunucunuz varsa, yükleyebilir ve yapılandırabilirsiniz. istenilen modül.

SSD'lerde barındırıyorsanız, Dosya önbelleğe alma ile Memcache veya Memcached arasında çok fazla bir fark göreceğinizi sanmıyorum. Ancak barındırma sahipleri için normal diskler olumlu farklılıklar olabilir.

"Memcached" önbelleğe almayı Joomla 3.5.1'de ve JotCache ile değil, standart Joomla önbelleğiyle test ettiğimde, herhangi bir hız artışı veya yük azalması fark etmedim. Aksine hız düştü. Tüketilen bellek (RAM) miktarı arttı ve işlemci üzerindeki yük arttı. Bu, yeni bir "Memcached" sürecinin tanıtılmasının bir sonucu olarak gerçekleşti. İlk başta, belki de Memcached modülünü sunucunun kendisinde yapılandırmadığımı önerdim. Veya VPS'im (2x2.8 GHz işlemci, 1024 MB RAM, SSD) görmeye yetmiyor olumlu sonuç. Ek olarak, sunucu / site üzerindeki yük çok büyük değildir ve önbelleği bir SSD'deki bir dosyada depolamak zaten iyidir ("normal" sabit sürücülere kıyasla). Bir süre sonra, “Memcached ve PHP, eğitim programı” makalesinde bir açıklama buldu: “... önbelleğe almayı yalnızca çok yüklü kaynaklarda kullanmaya değer. Sonuçta, Memcached sunucusuna her bağlandığınızda, büyük olasılıkla haklı olmayacak olan değerli zamanınızı boşa harcarsınız. … Ayrıca bellek kullanımını da unutmayın! Önbelleğe 300 megabayt koyarak, 300 megabayt RAM'i kendinizden aldığınızı unutmayın ... "


sekmesinde (aşağıdaki resim) Joomla tarayıcısının önbelleğini etkinleştirebilirsiniz (aynı adın seçeneği).

Tarayıcı önbelleğe alma (açılır pencereye bakın!). Bu seçenek ayarlanırsa Evet, ardından JotCache tarayıcının önbellek depolama mekanizmasını kullanır. Çok dikkatli kullanın. JotCache bileşeninde, sayfada Tarayıcı önbellek ömrü, Sitenin hangi sayfalarının tarayıcıda önbelleğe alınacağını belirleyebilirsiniz. Seçilen sayfalar, tarayıcının önbellek süresinin dolması süresince site sunucusundan yeniden yüklenmeden kullanıcının tarayıcısında önbelleğe alınır. Bu sona erme süresi, verilen her URL için ayrı ayrı ayarlanabilir. Varsayılan önbellek sona erme süresi, bileşen ayarlarında ayarlanabilir.

Düzenlenen sayfaları temizleyin. Seçme Evet düzenlenen sayfaları önbellekten otomatik olarak kaldırmak için. Sitenin önünden içerik düzenleyen kullanıcılar, en azından oluşturma iznine sahip olmalıdır.

Sorgu içeren URL'leri hariç tut. URL'lerinde sorgu bulunan tüm sayfalar (URL'nin "?" den sonraki kısmı) önbelleğe alınmadan hariç tutulur. Bu seçeneği yalnızca seçenek SEF'i (CNC) etkinleştir Joomla'nın genel ayarlarında ayarlanır Evet.

JS ve CSS entegrasyonu. Optimize edilmiş sayfaları doğru bir şekilde önbelleğe almak ve önbelleklerini temizlemek için JotCache entegrasyonunu JCH Optimize , Rokbooster veya Scriptmerge web sitesi hız optimizasyonu bileşenleriyle yapılandırmanıza olanak tanır.

Bahsedilen site yükleme hızı optimizasyon bileşenlerinden birini kurmaya karar verirseniz, önce önbelleğe almayı devre dışı bırakın, optimizasyon bileşenini yapılandırın, her şeyi kontrol edin. Sonuçtan memnunsanız, önbelleğe almayı etkinleştirin. Entegrasyon, bunlardan kurtulmanızı sağlar olası sorunlar uyumluluk.

Gördüğünüz gibi JotCache, aksine standart sistemönbelleğe alma, Joomla önbelleğini çok ince bir şekilde ayarlamanıza, performansta bir artış elde etmenize, sunucudaki yükü azaltmanıza ve işlevselliği korumanıza olanak tanır ve dış görünüş alan. Çok miktarda dinamik içerik kullanan projeler için kurulum sürecinin zor olabileceğini, çok zaman alacağını ve belgelerin dikkatli bir şekilde çalışılacağını not ediyorum. Daha dinamik site içeriğiyle, önbelleğe almanın etkisi daha az fark edilir.

  • Geliştiricinin resmi web sitesi (İngilizce).
  • Belgeler (İngilizce).

Yukarıdakilerin hepsinden önbelleğe almayı etkinleştirmenin Joomla'yı hızlandırmaya yardımcı olduğunu anlıyoruz. Ancak, siteye düzenli olarak materyal eklersek ve tüm sayfalar önbellekten alındığı için hiç kimse yeni makalelerin değişiklik ve eklemelerini görmezse? Bu sorunun iki çözümü vardır:

1. Her güncellemeden sonra önbelleği sitenizden manuel olarak silebilirsiniz. Bunu yapmak için sitenizin yönetim paneline gidin ve sağ üstteki araçlar sekmesini bulun ve "Önbelleği temizle"ye tıklayın:

Şimdi önbelleğini temizlemek istediğiniz tüm öğeleri seçin ve sağ üstteki "Sil" düğmesini tıklayın:

Ek olarak, artık alakalı olmayan girişleri silmek için "Eski Önbellek" in silinmesi de istenmektedir. Bunu yapmak için, "Araçlar">>"Eski önbelleği sil"e gidin ve açılan pencerede "Eski önbelleği sil" düğmesine sağ tıklayın:

2. İkinci yol daha uygun ve mantıklıdır. Genel ayarlarda, kendiniz önbelleğe almayı etkinleştirir ve önbellek ömrünü dakika olarak ayarlarsınız. Önbellek ömrü, sitenizde ne sıklıkta değişiklik yapıldığına bağlı olarak ayarlanmalıdır (örneğin, makaleler eklenir, vb.). Günde bir makale yazarsanız, kullanım ömrü 1440 dakikaya (24 saat) ayarlanabilir. Bu süreden sonra önbellek kendiliğinden silinecek ve eklenen tüm makaleler kullanıcılar tarafından görülebilecektir. Önbelleği etkinleştirmek için "Site">>"Genel ayarlar">>"Sistem"e gidin ve ekranın sağ tarafında "Önbellek ayarları"nı bulun:

Otomatik önbelleği temizle joomla hayatınızı büyük ölçüde kolaylaştıracak ve sunucunuzla ağır bir yük hakkında gereksiz konuşmalardan kaçınmanıza yardımcı olacaktır.

Joomla Modüllerini Önbelleğe Alma

Sitenizde, örneğin "En çok okunan" modülü gibi, önbelleğe alınması istenmeyecek modüller yüklenmiş olabilir. Sonuçta, bu modüldeki bilgiler yeni makaleler eklendiğinden çok daha sık değişebilir, bu yüzden bu modülde önbelleğe almayı kapatmamız gerekiyor. Bunu yapmak için sitenizin yönetim paneline gidin, "uzantılar">> "modül yöneticisi"ne gidin, istediğiniz modülü seçin ve ayarlarına gidin. Sağ tarafta, "Gelişmiş Seçenekler" sekmesini arıyoruz ve bu modüldeki bilgileri daha sık güncellemek için önbelleğe almayı devre dışı bırakıyor veya daha kısa bir önbellek ömrü belirliyoruz.

Bu yazıda, " önbellek ayarları" adresinde bulunan Joomla 3 yönetici panelinin "Genel Ayarlar" bölümünde sekme « sistem» . Bu ayarlar, site sayfalarını kullanıcılar tarafından istendiğinde kaydetmenize ve her seferinde veritabanına istek yapmak yerine hemen bir dosyadan vermenize olanak tanır. Bu, sunucu üzerindeki yükü önemli ölçüde azaltır ve kullanıcılara hızlı bir şekilde içerik vermenizi sağlar. Düzgün yapılandırılmış bir önbellek bir garantidir hızlı iş site ve üst arama sorgularında sitenin SEO tanıtımı için araçlardan biridir.

Joomla admin panelinde "Önbellek Ayarları"nın nasıl göründüğünü anlamak için aşağıdaki resme bakalım:

Joomla 3 yönetici panelinde "Önbellek ayarları"

Joomla yönetici panelindeki "Önbellek ayarları", değerleri yapılandırılabilen birkaç alandan oluşur:

  • Alan " önbelleğe alma işleyicisi» - Önbelleğe alma yöntemini seçin. Standart önbelleğe alma mekanizması dosya tabanlıdır. Lütfen önbellek dosyası dizinlerinin yazılabilir olduğundan emin olun.
  • Alan " Önbellek dizinine giden yol» - Lütfen önbellek dosyalarının saklanacağı bir klasör belirtin.
  • Alan " Önbelleğe Alma Süresi» - Dakika cinsinden maksimum önbellek dosyaları ömrü. Bu süreden sonra önbellek güncellenecektir.
  • Alan " Platforma özel önbelleğe alma» - Platforma özel önbelleğe almayı etkinleştirin veya devre dışı bırakın. Mobil cihazlarda HTML çıktısı diğer cihazlardan farklı olduğunda etkinleştirin. (Varsayılan olarak devre dışıdır)
  • Alan " Sistem önbelleği» - Önbelleğe almayı etkinleştirir veya devre dışı bırakır ve seviyesini belirler. Standart seviye: Daha küçük sistem önbelleği, Aşamalı seviye (varsayılan): Daha hızlı, Modül önbelleğe almayı içerdiğinden daha büyük sistem önbelleği. Çok büyük siteler için uygun değildir.

Değişiklik yapmak için bu alanlardaki verileri değiştirmeniz ve "Kaydet" veya "Kaydet ve kapat" butonunu kullanmanız gerekmektedir. üst sıra yönetici panelinin "Genel ayarlar" kontrol düğmeleri. Ayrılmak Genel Ayarlar değişiklik yapmadan "İptal" butonunu kullanabilirsiniz.

CMS Joomla, materyalleri önbelleğe alma yeteneğine sahiptir, bu da veritabanına yapılan sorgu sayısını azaltmanıza ve dolayısıyla - sayfaların oluşturulmasını hızlandırmanıza ve sunucudaki yükü azaltmanıza olanak tanır. Bu, özellikle yüksek trafiğe sahip siteler için önemlidir.

Çalışma prensibi yaklaşık olarak şu şekildedir: materyale ilk eriştiğinizde, yalnızca onu talep eden kullanıcının tarayıcısına oluşturulup iletilmez, aynı zamanda sitenizdeki belirli bir klasörde (önbellek klasörü) saklanır. Aynı malzemeye bir daha eriştiğinizde, sunucu kaynaklarını alarak artık yeniden oluşturulmayacak, sadece önbellekten alınacaktır.

Soru ortaya çıkıyor: "Peki o zaman siteyi güncellemeye ne dersiniz? Sonuçta, kullanıcı yaptığımız değişiklikleri fark etmeyecek, çünkü önbellekten eski bilgiler ona görüntüleniyor?"

Aynen öyle. Kullanıcı, yapılan değişiklikleri yalnızca belirli bir süre sonra görecektir. önbelleğe alma süresi. Bu, önbelleğe alınan bilgilerin depolandığı zamandır. Daha sonra silinir ve tekrar önbelleğe alınır.

Doğru önbellek ömrünü seçmek çok önemlidir. Buradaki kilit faktör, bilgi güncellemelerinin sıklığıdır. Örneğin, sitedeki bilgileri günde bir kez güncellerseniz, önbelleğe alma süresini 24 saatten biraz daha az bir süreye ayarlamak mantıklı olacaktır, örneğin - 22 saat (1320 dakika). Kalan birkaç saat için materyalleri güncellemek için zamanınız olması oldukça mümkün.

İki günde bir değişiklik yaparsanız, süreyi 46 saat (2760 dakika) olarak ayarlayın. Genel olarak, anlamın açık olduğunu düşünüyorum.

Aniden planlanmamış bir güncelleme yapmanız gerekiyorsa ve değişikliklerin hemen yürürlüğe girmesi gerekiyorsa, önbelleği manuel olarak temizlemeniz yeterlidir.

Önbelleğe almayı etkinleştirmek için yönetici paneline gidin, SİTE - GENEL AYARLAR - SİSTEM'i seçin. Sağ tarafta önbellek ayarlarını görebilirsiniz.

Radyo anahtarını "Evet" olarak ayarlayın ve önbelleğe alma süresini ayarlayın. Değişikliklerin geçerli olması için "Kaydet" butonuna tıklamayı unutmayın :)

Bu durumda sözde sorduk. küresel seçenekler, yani tüm site için etkin önbelleğe alma. Ancak, bazı modüller için onu hiç kullanmamak daha iyidir. Bunlar, haberler, hava durumu vb. gibi sık güncellenen bilgileri görüntüleyen modüller olabilir.

UZANTILAR - MODÜL MÜDÜRÜ'ne gidin - ihtiyacınız olanı tıklayın ve ayarlara girin. Parametreler öğesiyle ilgileniyoruz (sağda).

Gördüğünüz gibi, belirli bir modül için genel ayarları kullanabilir veya önbelleği hiç kullanmayabilirsiniz.

Önbelleği manuel olarak temizlemek için ARAÇLAR - ÖN BELLEĞİ TEMİZLE'ye gidin

Özet:önbelleğe alma teknolojisi, Joomla sitesini önemli ölçüde hızlandırabilir ve performansını artırabilir. Bu teknolojiyi kullanırken, bir ziyaretçinin sitedeki güncellemeleri belirli bir gecikmeyle görmesi gibi bir durum ortaya çıkabilir. Bunun olmasını önlemek için, doğru önbelleğe alma süresini seçmeniz gerekir. Bu süreyi seçmenin ana kriteri sitenin güncellenme sıklığıdır. Bazı modüller için, örneğin çeşitli bilgilendiriciler için, önbelleğe almayı tamamen devre dışı bırakmak daha iyidir.