കാഷിംഗ്, പി.എച്ച്.പി. php ഫയലുകളുടെ സമാഹാരത്തിൻ്റെ കാഷിംഗ് ഫലങ്ങൾ. PHP-യിൽ കാഷെ ചെയ്യുന്നു

ആധുനിക ബ്രൗസറുകൾ അവരുടെ ജോലിയിൽ പലപ്പോഴും ഒരു പ്രാദേശിക കാഷെ ഉപയോഗിക്കുന്നു. എന്താണിതിനർത്ഥം? ഇതിനർത്ഥം, സെർവറിൽ നിന്ന് ഒരു HTML പ്രമാണമോ ചിത്രമോ മറ്റ് ഉറവിടമോ ലഭിച്ച ബ്രൗസർ അതിനെ അതിൻ്റെ പ്രാദേശിക കാഷെയിൽ സ്ഥാപിക്കുന്നു (മറ്റൊരു രീതിയിൽ പറഞ്ഞാൽ, സ്വീകരിച്ച ഉറവിടം HDDഉപയോക്തൃ മെഷീൻ) കൂടാതെ അത്തരം ഒരു ഉറവിടത്തിലേക്കുള്ള തുടർന്നുള്ള അഭ്യർത്ഥനകളിൽ സെർവറിൽ പ്രവേശിക്കുന്നില്ല, പക്ഷേ പ്രാദേശിക കാഷെയിൽ നിന്ന് ഉറവിടം സ്വീകരിക്കുന്നു.

ഈ ബ്രൗസർ അൽഗോരിതം HTML പ്രമാണങ്ങളുടെ ലോഡിംഗ് വേഗത ഗണ്യമായി വർദ്ധിപ്പിക്കുന്നു. റിസോഴ്‌സ് ഇതിനകം ലോഡുചെയ്‌തിട്ടുണ്ടെങ്കിൽ, അതിൻ്റെ ഫലമായി പ്രാദേശിക കാഷെയിൽ സ്ഥിതിചെയ്യുന്നുവെങ്കിൽ, ആക്‌സസ് സമയം നിർണ്ണയിക്കപ്പെടുന്നില്ല ത്രൂപുട്ട്ആശയവിനിമയ ചാനലും (ഉദാഹരണത്തിന്, മോഡം കണക്ഷൻ) വേഗതയും കഠിനാധ്വാനം ചെയ്യുകഡിസ്ക്.

എന്നിരുന്നാലും, ഗുണങ്ങളോടൊപ്പം ഈ രീതികൂടാതെ നിരവധി പ്രശ്നങ്ങൾ സൃഷ്ടിക്കുന്നു. പ്രത്യേകിച്ചും, മിക്ക പുതിയ വെബ് പ്രോഗ്രാമർമാരും, ഡൈനാമിക് സൈറ്റുകൾ വികസിപ്പിക്കുമ്പോൾ, ഇതേ പ്രശ്നം നേരിടുന്നു. ഈ പ്രശ്നത്തിൻ്റെ സാരം, ചില വിവരങ്ങൾ പരിഷ്ക്കരിക്കുന്ന സെർവറിൽ ഒരു സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുന്ന ഒരു പേജിനായി സെർവറുമായി ആവർത്തിച്ച് ബന്ധപ്പെടുന്നതിന് പകരം, ബ്രൗസർ ലോക്കൽ കാഷെ ആക്സസ് ചെയ്യുന്നു എന്നതാണ്. ഉദാഹരണത്തിന്, മൂന്ന് അഭ്യർത്ഥനകളുടെ ഫലമായി, സെർവറിൽ സ്ഥിതി ചെയ്യുന്ന വിവരങ്ങളുടെ മൂന്ന് പരിഷ്കാരങ്ങളല്ല, ഒന്ന് മാത്രം.

ഓരോ തവണയും സെർവറിൽ നിന്ന് ഒരു പേജ് അഭ്യർത്ഥിക്കാൻ ബ്രൗസറിനെ നിർബന്ധിക്കുന്നതിന്, ബ്രൗസറിൽ പ്രവേശിക്കുന്നതിൽ നിന്ന് നിങ്ങൾ വിലക്കേണ്ടതുണ്ട് ഈ വിഭവംകാഷെ ചെയ്യാൻ. കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കുന്നതിനോ ബൈപാസ് ചെയ്യുന്നതിനോ ഉള്ള ഏറ്റവും സാധാരണമായ രീതികൾ ചുവടെയുണ്ട്.

ഒരു പുതിയ URL സൃഷ്ടിക്കുന്നു

അഭ്യർത്ഥിച്ച ഉറവിടത്തിന് ഇനിപ്പറയുന്ന url ഉണ്ടെന്ന് നമുക്ക് അനുമാനിക്കാം: test.html?id=7. url-ൽ നിന്ന് നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, ഒരു പരാമീറ്റർ അതിലേക്ക് കൈമാറുന്നു. ഉദാഹരണത്തിന്, എപ്പോൾ എന്ന് ചേർക്കാം JavaScript സഹായം, url-ൽ ഒരു പാരാമീറ്റർ കൂടി ഉണ്ട്, ഞങ്ങൾ അതിനെ അതിൻ്റെ മൂല്യമാക്കും ക്രമരഹിത സംഖ്യ. ഫലമായി, url ഇതുപോലെ കാണപ്പെടും: test.html?id=7&rnd=0.6700820127538827. ഓരോ തവണയും ക്രമരഹിതമായ പാരാമീറ്റർ പുതുതായി സൃഷ്ടിക്കപ്പെടും. ഈ സമീപനം പ്രകടമാക്കുന്ന ഒരു ലിസ്റ്റിംഗ് ചുവടെയുണ്ട്:

ഒരു പുതിയ URL പ്രമാണം സൃഷ്ടിക്കുന്നു.write(""); ടെസ്റ്റ് ലിങ്ക്

ഓരോ തവണയും അത്തരത്തിലുള്ള ഒരു അഭ്യർത്ഥനയുടെ ഫലം കാഷെ ചെയ്യപ്പെടും, എന്നാൽ മുഴുവൻ url-ലും കാഷിംഗ് നടത്തുന്നതിനാൽ, ഓരോ തവണയും ഒരു പുതിയ url ലഭിക്കും, കൂടാതെ സെർവറിൽ നിന്ന് ഒരു റിസോഴ്സ് അഭ്യർത്ഥിക്കാൻ ബ്രൗസർ നിർബന്ധിതരാകും. രണ്ട് അഭ്യർത്ഥനകൾ കൃത്യമായി പൊരുത്തപ്പെടുന്നില്ല.
ഹെഡർ ഫീൽഡുകൾ

നിങ്ങൾക്ക് സെർവർ വശത്ത് നിന്ന് കാഷെ ചെയ്യാനും നിയന്ത്രിക്കാനാകും. ഇത് നേടുന്നതിന്, ബ്രൗസറിലേക്ക് അയച്ച ഉറവിടം ഹെഡർ ഫീൽഡുകൾക്കൊപ്പമാണ്. വിശദമായ വിവരണംഹെഡർ ഫീൽഡുകൾ Rfc 2068 സ്റ്റാൻഡേർഡിൽ കാണാം, അത് വിവരിക്കുന്നു HTTP പ്രോട്ടോക്കോൾ 1.1.

ഹെഡർ ഫീൽഡ് കാലഹരണപ്പെടുന്നു

വിഭവത്തിൻ്റെ ഉള്ളടക്കം കാലഹരണപ്പെടുന്ന തീയതിയാണ് ഈ തലക്കെട്ടിൻ്റെ മൂല്യം. ഈ തീയതിക്ക് ശേഷം ഒരു ഉപയോക്താവ് ഒരു റിസോഴ്‌സ് ആക്‌സസ് ചെയ്യുകയാണെങ്കിൽ, ബ്രൗസർ പ്രാദേശിക കാഷെയിൽ നിന്നല്ല, സെർവറിൽ നിന്ന് റിസോഴ്‌സ് അഭ്യർത്ഥിക്കണം.

ഫീൽഡ് > കാലഹരണപ്പെടുകയാണെങ്കിൽ< содержит дату, прошедшую, по отношению к текущей, то при следующем обращении к ресурсу браузер будет вынужден снова обратиться к серверу. Это произойдет вследствие того, что либо документ не будет занесен в кэш — как уже устаревший, либо при обращении к кэшу браузер определит, что документ уже устарел. Следующий листинг на PHP демонстрирует использование заголовка Expires:

അവസാനം പരിഷ്കരിച്ച തലക്കെട്ട് ഫീൽഡ്

ഈ തലക്കെട്ടിൻ്റെ മൂല്യം തീയതിയാണ് അവസാന പരിഷ്കാരംവിഭവം. ഭൂരിപക്ഷം ആധുനിക ബ്രൗസറുകൾഉപയോഗിക്കുക അടുത്ത അൽഗോരിതംഉറവിടം ഇതിനകം പ്രാദേശിക കാഷെയിലാണെങ്കിൽ:

* അവസാന റിസോഴ്സ് അപ്ഡേറ്റ് തീയതി സെർവറിൽ നിന്ന് അഭ്യർത്ഥിക്കുന്നു
* ലഭിച്ച തീയതിയും പ്രാദേശിക കാഷെയിലെ ഉറവിട തീയതിയും താരതമ്യം ചെയ്യുന്നു
* റിസോഴ്സ് സെർവറിലാണെങ്കിൽ വിഭവത്തേക്കാൾ പുതിയത്കാഷെയിൽ - സെർവറിൽ നിന്ന് ഒരു ഉറവിടം അഭ്യർത്ഥിക്കുന്നു

സെർവറിൽ സ്ഥിതിചെയ്യുന്ന ഒരു ഉറവിടം ഈ ഫീൽഡിൽ അടങ്ങിയിട്ടുണ്ടെങ്കിൽ നിലവിലെ തീയതി, തുടർന്ന് ബ്രൗസർ ഓരോ തവണയും സെർവറിൽ നിന്ന് ഉറവിടം അഭ്യർത്ഥിക്കും, അല്ലാതെ പ്രാദേശിക കാഷെയിൽ നിന്നല്ല. അവസാനമായി പരിഷ്‌ക്കരിച്ച ഹെഡർ ഫീൽഡിൻ്റെ ഉപയോഗം ഇനിപ്പറയുന്ന ലിസ്റ്റിംഗ് കാണിക്കുന്നു:

തലക്കെട്ട്("അവസാനം പരിഷ്ക്കരിച്ചത്: " . gmdate("D, d M Y H:i:s") . " GMT");

കാഷെ-നിയന്ത്രണവും പ്രാഗ്മ ഹെഡർ ഫീൽഡുകളും

അവസാനമായി, റിസോഴ്സ് കാഷിംഗിന് നേരിട്ട് ഉത്തരവാദികളായ ഹെഡർ ഫീൽഡുകൾ. HTTP 1.0 പ്രോട്ടോക്കോൾ വിവരിക്കുന്ന RFC 1945 സ്റ്റാൻഡേർഡിലാണ് ഫീൽഡ് നിർവചിച്ചിരിക്കുന്നത്. ഈ ഫീൽഡ് കാലഹരണപ്പെട്ടതായി കണക്കാക്കപ്പെടുന്നു, എന്നാൽ ചില സന്ദർഭങ്ങളിൽ ഇത് ഉപയോഗിക്കേണ്ടത് ആവശ്യമാണ്. പ്രത്യേകിച്ചും, ഈ ഹെഡർ ഫീൽഡ് റിസോഴ്സിനൊപ്പം അയച്ചിട്ടില്ലെങ്കിൽ, ചില പ്രോക്സി സെർവറുകൾ നിരന്തരം ഉറവിടങ്ങൾ മാറ്റുന്നതിനുള്ള അഭ്യർത്ഥനകൾ ശരിയായി പ്രോസസ്സ് ചെയ്യുന്നില്ല.

HTTP 1.1 പ്രോട്ടോക്കോൾ വിവരിക്കുന്ന RFC 2068 സ്റ്റാൻഡേർഡിലാണ് രണ്ടാമത്തെ ഫീൽഡ് നിർവചിച്ചിരിക്കുന്നത്. ഈ ഹെഡർ ഫീൽഡ് കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കാനും ഓരോ തവണയും സെർവറിൽ നിന്ന് ഒരു റിസോഴ്സ് അഭ്യർത്ഥിക്കാനും നിങ്ങളെ അനുവദിക്കുന്നു. കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കുന്നതിന് കാഷെ-നിയന്ത്രണത്തിൻ്റെയും പ്രാഗ്മ ഹെഡർ ഫീൽഡുകളുടെയും ഉപയോഗം ഇനിപ്പറയുന്ന ലിസ്റ്റിംഗ് കാണിക്കുന്നു:

തലക്കെട്ട് ("കാഷെ-നിയന്ത്രണം: നോ-കാഷെ, വീണ്ടും മൂല്യനിർണ്ണയം"); തലക്കെട്ട് ("പ്രാഗ്മ: നോ-കാഷെ");

നല്ല ചീത്ത

ഒരു സൈറ്റ് വേഗത്തിൽ ലോഡുചെയ്യുന്നത് ഉപയോക്താക്കൾക്ക് കൂടുതൽ സൗകര്യപ്രദമാകുമെന്നത് രഹസ്യമല്ല. പേജുകൾ വേഗത്തിൽ ലോഡുചെയ്യുകയാണെങ്കിൽ, ഉപയോക്താക്കൾ നിങ്ങളുടെ സൈറ്റ് വിടുകയില്ല, സെർച്ച് എഞ്ചിനുകൾ നിങ്ങളുടെ സൈറ്റിനെ മികച്ച രീതിയിൽ കൈകാര്യം ചെയ്യും. പല ആധുനിക വെബ്സൈറ്റുകൾക്കും, PHP ഡൈനാമിക് സ്ക്രിപ്റ്റ് എക്സിക്യൂഷൻ എഞ്ചിൻ ഒരു തടസ്സമായി മാറുന്നു.

Nginx വെബ് സെർവർ എപ്പോൾ ശരിയായ ക്രമീകരണം PHP-യെ കുറിച്ച് പറയാനാകില്ല, ഒരു വലിയ പേജുകൾ തൽക്ഷണം നൽകാൻ കഴിയും; ഒരു പേജ് സൃഷ്ടിക്കുന്നതിന് കുറച്ച് സെക്കൻഡുകൾ വരെ എടുത്തേക്കാം. എന്നാൽ കാഷിംഗ് ഉപയോഗിച്ച് PHP വേഗത്തിലാക്കാനും കഴിയും. ഈ ലേഖനത്തിൽ, പിഎച്ച്പി കാഷിംഗ് എങ്ങനെ ക്രമീകരിച്ചിരിക്കുന്നു, അത് എങ്ങനെയാണെന്നും അത് എന്തിനാണ് ആവശ്യമുള്ളതെന്നും നോക്കാം. ഉദാഹരണത്തിന്, ഞങ്ങൾ php-fpm, Nginx എന്നിവയുടെ സംയോജനം ഉപയോഗിക്കും, എന്നാൽ ലേഖനത്തിൽ നിന്നുള്ള വിവരങ്ങൾ മറ്റ് ഇൻസ്റ്റലേഷൻ ഓപ്ഷനുകൾക്കും അനുയോജ്യമാണ്.

വ്യാഖ്യാനിച്ച ഭാഷകളുടെ പ്രത്യേകത, ഓരോ സ്ക്രിപ്റ്റ് സമാരംഭിക്കുമ്പോഴും, വ്യാഖ്യാതാവ് പ്രോഗ്രാം കംപൈൽ ചെയ്യുകയും പിശകുകൾക്കായി പരിശോധിക്കുകയും വേണം. എന്നാൽ നമുക്ക് ചുറ്റിക്കറങ്ങാം. രണ്ട് പ്രധാന തരം കാഷിംഗ് ഉണ്ട്:

  • റെഡിമെയ്ഡ് പേജുകളുടെ കാഷിംഗ് - പേജ് PHP സൃഷ്ടിച്ചതാണ്, തുടർന്ന് PHP ആക്സസ് ചെയ്യാതെ തന്നെ റെഡിമെയ്ഡ് പേജ് ഉപയോക്താവിന് നൽകുന്നു. ഫാസ്റ്റ്‌സിജി ഉപയോഗിച്ച് ഇത് എങ്ങനെ ചെയ്യാമെന്ന് ഞാൻ നിങ്ങളോട് പറയും, പക്ഷേ വേർഡ്പ്രസിനോ മറ്റ് എഞ്ചിനുകൾക്കോ ​​ഈ രീതി ഉപയോഗിക്കാൻ ഞാൻ ശുപാർശ ചെയ്യുന്നില്ല; പ്രത്യേക പ്ലഗിനുകൾ ഉപയോഗിച്ച് അവ കാഷെ ചെയ്യുന്നതാണ് നല്ലത്;
  • ബൈറ്റ് കോഡും നിർദ്ദേശങ്ങളും കാഷെ ചെയ്യുന്നു - ഇത് ഇതിനകം രസകരമാണ്, മുഴുവൻ പേജും കാഷെ ചെയ്തിട്ടില്ല, പക്ഷേ ചില നിർദ്ദേശങ്ങളും സ്ക്രിപ്റ്റ് വിളിക്കുമ്പോൾ മാറാത്ത ബൈറ്റ് കോഡിൻ്റെ ഭാഗങ്ങളും മാത്രം. ഒരു സ്ക്രിപ്റ്റ് എക്സിക്യൂട്ട് ചെയ്യുന്നതിനുമുമ്പ്, വ്യാഖ്യാതാവ് അത് മനസ്സിലാക്കുന്ന ഒരു ഫോർമാറ്റിലേക്ക് പരിവർത്തനം ചെയ്യണം, കാഷെ ചെയ്യുമ്പോൾ, അത്തരമൊരു പരിവർത്തനം ആദ്യ റണ്ണിനായി മാത്രം നടത്തുന്നു, തുടർന്ന് കാഷെയിൽ നിന്നുള്ള പതിപ്പ് എടുക്കുന്നു;
  • സെഷൻ കാഷിംഗ് - ഡിഫോൾട്ടായി, php ഉപയോക്തൃ സെഷനുകളെ ഫയലുകളിലേക്ക് സംരക്ഷിക്കുന്നു, കൂടാതെ സെഷനുകൾ റാമിലേക്ക് സേവ് ചെയ്താൽ നമുക്ക് അതിൻ്റെ പ്രവർത്തനം അൽപ്പം വേഗത്തിലാക്കാൻ കഴിയും.
PHP-യിൽ ബൈറ്റ്കോഡ് കാഷിംഗ്

PHP 5.5 മുതൽ, ZendFramework-ൽ നിന്നുള്ള ബൈറ്റ്കോഡ് കാഷെ ചെയ്യുന്നതിനുള്ള പിന്തുണ ഭാഷാ ഇൻ്റർപ്രെറ്ററിലേക്ക് ചേർത്തു. പുതിയ പതിപ്പുകളിൽ, നിങ്ങളുടെ റിസോഴ്സിൻ്റെ പ്രകടനം വളരെയധികം വർദ്ധിപ്പിക്കാൻ ഈ കാഷെ നിങ്ങളെ അനുവദിക്കുന്നു; ഉദാഹരണത്തിന്, Wordpres ഉം മറ്റ് എഞ്ചിനുകളും PHP 7-ൽ ഏകദേശം ഇരട്ടി വേഗത്തിൽ പ്രവർത്തിക്കുന്നു എന്ന വിവരമുണ്ട്. Opcode php കാഷിംഗ് സജ്ജീകരിക്കുന്നതിന് മുമ്പ്, നിങ്ങൾ അതിൻ്റെ പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്:

sudo apt php-opcache ഇൻസ്റ്റാൾ ചെയ്യുക

അല്ലെങ്കിൽ വേണ്ടി ചുവന്ന തൊപ്പിവിതരണങ്ങൾ:

sudo yum php-opcache ഇൻസ്റ്റാൾ ചെയ്യുക

തുടർന്ന്, കാഷിംഗ് പ്രവർത്തനക്ഷമമാക്കാൻ നിങ്ങൾ php.ini ലേക്ക് കുറച്ച് വരികൾ ചേർക്കേണ്ടതുണ്ട്, നിങ്ങൾക്ക് സൃഷ്ടിക്കാനും കഴിയും പ്രത്യേക ഫയൽ/etc/php/conf.d/ എന്നതിൽ

vi /etc/php.d/opcache.ini

zend_extension=opcache.so;
opcache.error_log=/var/log/php-fpm/opcache-error.log
opcache.enable=1;
opcache.memory_consumption=256;
opcache.interned_strings_buffer=8;
opcache.max_accelerated_files=4000;
opcache.revalidate_freq=180;
opcache.fast_shutdown=0;
opcache.enable_cli=0;
opcache.revalidate_path=0;
opcache.validate_timestamps=2;
opcache.max_file_size=0;
opcache.file_cache= /var/www/site/opcache;

ഈ വരികൾ എന്താണ് അർത്ഥമാക്കുന്നത് എന്ന് നോക്കാം, അതിനാൽ എന്ത് മൂല്യങ്ങളാണ് സജ്ജീകരിക്കേണ്ടതെന്ന് നിങ്ങൾക്കറിയാം. ആദ്യ വരി വിപുലീകരണം ലോഡ് ചെയ്യുന്നു, ഇവിടെ ഒന്നും മാറ്റേണ്ടതില്ല.

  • opcache.error_log - പിശക് ലോഗ് രേഖപ്പെടുത്തുന്നതിനുള്ള ഫയൽ വ്യക്തമാക്കുന്നു, ഇത് ഡീബഗ്ഗിംഗിന് ഉപയോഗപ്രദമാകും;
  • opcache.log_verbosity_level - ലോഗ് ഫയൽ എത്ര വിശദമായിരിക്കണമെന്ന് സൂചിപ്പിക്കുന്നു, 1 മുതൽ 4 വരെയുള്ള മൂല്യം;
  • opcache.enable - കാഷിംഗ് പ്രാപ്തമാക്കുന്നു;
  • opcache.enable_cli - കാഷിംഗ് പ്രവർത്തനക്ഷമമാക്കുന്നു php പേജുകൾകൺസോൾ പതിപ്പിനായി;
  • opcache.memory_consumption - അളവ് റാൻഡം ആക്സസ് മെമ്മറികാഷെ സംഭരിക്കുന്നതിന്;
  • opcache.max_accelerated_files - കാഷെ ചെയ്യേണ്ട സ്ക്രിപ്റ്റുകളുടെ/ഫയലുകളുടെ എണ്ണം;
  • opcache.validate_timestamps - സ്ക്രിപ്റ്റ് ഫയലിലെ ഡാറ്റ പരിഷ്ക്കരണ സമയം പരിശോധിക്കുക;
  • opcache.revalidate_freq - മുമ്പത്തെ പരാമീറ്ററിനുള്ള ആവൃത്തി പരിശോധിക്കുക;
  • opcache.revalidate_path - ആദ്യ തവണ മാത്രം ഉൾപ്പെടുത്തി പരിശോധിക്കുന്നതിന് 0 ആയി സജ്ജമാക്കുക;
  • opcache.enable_file_override - ഫയൽ ആട്രിബ്യൂട്ടുകൾക്കായുള്ള അഭ്യർത്ഥനകൾ കാഷെ ചെയ്യുന്നു, ഉദാഹരണത്തിന്, നിലനിൽപ്പ് മുതലായവ;
  • opcache.blacklist_filename - കാഷെ ചെയ്യേണ്ടതില്ലാത്ത ഫയലുകളുടെ ലിസ്റ്റ്;
  • opcache.max_file_size - പരമാവധി വലിപ്പംകാഷെ ചെയ്യുന്നതിനുള്ള സ്ക്രിപ്റ്റ് ഫയൽ, 0 - അൺലിമിറ്റഡ്;
  • opcache.interned_strings_buffer - ബഫറിൽ അനുവദനീയമായ സ്ട്രിംഗുകളുടെ എണ്ണം;
  • opcache.fast_shutdown - ഉപയോഗിക്കുക പെട്ടെന്നുള്ള വഴിമെമ്മറി സ്വതന്ത്രമാക്കുന്നു.

എല്ലാ ക്രമീകരണങ്ങളും സംരക്ഷിച്ച ശേഷം, നിങ്ങൾ ചെയ്യേണ്ടത് php അല്ലെങ്കിൽ നിങ്ങളുടെ വെബ് സെർവർ പുനരാരംഭിക്കുക:

systemctl php-fpm പുനരാരംഭിക്കുക

എല്ലാം പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കാൻ, ഏതൊക്കെ സ്‌ക്രിപ്റ്റുകൾ ഇതിനകം കാഷെ ചെയ്‌തിരിക്കുന്നുവെന്ന് കാണാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം. ഇതിനായി നിങ്ങൾക്ക് opcache-status സ്ക്രിപ്റ്റ് ഉപയോഗിക്കാം. നിങ്ങളുടെ വെബ് സെർവർ ഡയറക്‌ടറിയിലേക്ക് സ്‌ക്രിപ്റ്റ് സംരക്ഷിച്ച് അതിന് അനുമതികൾ നൽകുക:

chmod 777 /var/www/site/opcode.php

http://localhost/opcache.php

ഇവിടെ കാണാം വിശദമായ സ്ഥിതിവിവരക്കണക്കുകൾകാഷിംഗ്, ക്രമീകരണങ്ങൾ, മെമ്മറിയുടെ അളവ് എന്നിവയ്ക്കായി.

memcached-ൽ സെഷനുകൾ സംഭരിക്കുന്നു

സ്ഥിരസ്ഥിതിയായി, php സെഷനുകൾ സംഭരിക്കുന്നു ഫയൽ സിസ്റ്റം, ചില സന്ദർഭങ്ങളിൽ, നിങ്ങൾക്ക് വളരെയധികം വേഗത്തിലാക്കാൻ കഴിയും php ജോലി, നിങ്ങൾ ഫയലുകളിൽ നിന്ന് RAM-ലേക്ക് സെഷനുകളുടെ സംഭരണം കൈമാറുകയാണെങ്കിൽ, ഉദാഹരണത്തിന്, memcached. ആദ്യം നിങ്ങൾ memcached ഇൻസ്റ്റാൾ ചെയ്യണം php ലൈബ്രറിഅതുമായി പ്രവർത്തിക്കാൻ:

sudo apt memcached php-memcached ഇൻസ്റ്റാൾ ചെയ്യുക

അല്ലെങ്കിൽ Red Hat അടിസ്ഥാനമാക്കിയുള്ള സിസ്റ്റങ്ങൾക്കായി:

sudo yum memcached php-memcached ഇൻസ്റ്റാൾ ചെയ്യുക

ആദ്യം നമ്മൾ memcached കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്, /etc/sysconfig/memcached ഫയൽ തുറന്ന് CACHESIZE എന്ന ലൈൻ കണ്ടെത്തുക, ഇവിടെ നിങ്ങൾ കാഷെക്കായി നീക്കിവച്ചിരിക്കുന്ന RAM-ൻ്റെ അളവ് വ്യക്തമാക്കേണ്ടതുണ്ട്:

vi /etc/sysconfig/memcached

session.save_handler = memcache
session.save_path = "tcp://localhost:11211"

നിങ്ങളുടെ php വ്യാഖ്യാതാവ് പുനരാരംഭിക്കുക മാത്രമാണ് അവശേഷിക്കുന്നത്:

systemctl php-fpm പുനരാരംഭിക്കുക

എല്ലാം ശരിയായി കാഷെ ചെയ്‌തിട്ടുണ്ടോ എന്നും കാഷെയിൽ എന്തെങ്കിലും ഉണ്ടോ എന്നും പരിശോധിക്കണമെങ്കിൽ, നിങ്ങൾക്ക് phpmemcacheadmin ഉപയോഗിക്കാം.

fastcgi പേജുകൾ കാഷെ ചെയ്യുന്നു

വേർഡ്പ്രസ്സ് സൈറ്റുകൾക്കായി fastgci കാഷിംഗ് ഉപയോഗിക്കാൻ ഞാൻ ശുപാർശ ചെയ്യുന്നില്ല, കാരണം കാഷെ കൃത്യമായി നിയന്ത്രിക്കാനും ആവശ്യമുള്ളപ്പോൾ അത് മായ്‌ക്കാനും കൃത്യസമയത്ത് അപ്‌ഡേറ്റ് ചെയ്യാനും കഴിയുന്ന പ്രത്യേക പ്ലഗിനുകൾ ഉണ്ട്. എന്നാൽ മറ്റെല്ലാ സാഹചര്യങ്ങളിലും, fastcgi കാഷെ സൈറ്റിനെ വളരെയധികം വേഗത്തിലാക്കും. നിങ്ങൾ fastgci പ്രവർത്തനക്ഷമമാക്കുന്ന കോൺഫിഗറിലാണ് ഇത് ക്രമീകരിച്ചിരിക്കുന്നത്, ഉദാഹരണത്തിന്, കോൺഫിഗറേഷനിൽ Nginx വെബ് സെർവർ. ഫാസ്റ്റ്‌ജിസി കാഷെ കോൺഫിഗർ ചെയ്യുന്നതിനുള്ള ഏറ്റവും കുറഞ്ഞ മാർഗം സെർവർ ബ്ലോക്കിലേക്ക് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക എന്നതാണ്:

vi /etc/nginx/vhosts/site.conf

fastcgi_cache_path /var/nginx/cache level=1:2 keys_zone=MYAPP:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

ആദ്യ വരി ഒരേസമയം നിരവധി പാരാമീറ്ററുകൾ കോൺഫിഗർ ചെയ്യുന്നു, ഒന്നാമതായി, ഇത് കാഷെയിലേക്കുള്ള പാത ചേർക്കുന്നു, ഫോൾഡർ നിലവിലിരിക്കുന്നതും വെബ് സെർവറിന് അതിൽ എഴുതാനുള്ള അവകാശവും ഉള്ളിടത്തോളം നിങ്ങൾക്ക് ഏതെങ്കിലും ഒന്ന് ഉപയോഗിക്കാം. എത്ര സബ്ഫോൾഡറുകൾ ഉണ്ടെന്ന് ലെവൽ നിർദ്ദേശം വ്യക്തമാക്കുന്നു. അടുത്ത വരികാഷെക്കുള്ള ഒരു കീ ആയി എന്താണ് ഉപയോഗിക്കേണ്ടതെന്ന് സൂചിപ്പിക്കുന്നു. md5-ൽ കീ ഹാഷ് ചെയ്യപ്പെടും.

ഇപ്പോൾ നിങ്ങൾ php പ്രോസസ്സിംഗ് ബ്ലോക്ക് കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്:

സ്ഥാനം ~ \.php$ (
fastcgi_pass unix:/var/run/php7-fpm.sock;
fastcgi_index index.php;
fastcgi_params ഉൾപ്പെടുത്തുക;
fastcgi_cache MYAPP;
fastcgi_cache_valid 200 60m;
}

ഇവിടെ ഞങ്ങൾ ഇതിനകം കോൺഫിഗർ ചെയ്‌ത MYAPP മെമ്മറി സോൺ ആക്‌സസ് ചെയ്യുന്നു, കൂടാതെ ഒരു മണിക്കൂർ കാഷെ ലൈഫ് ടൈം വ്യക്തമാക്കുകയും ചെയ്യുന്നു. കാഷിംഗ് പരിശോധിക്കാൻ, നിങ്ങൾക്ക് ഫോൾഡറിലെ ഉള്ളടക്കങ്ങൾ കാണാൻ കഴിയും:

ls -lR /var/nginx/cache/

ഈ രീതികൾ ഉപയോഗിച്ച്, നിങ്ങളുടെ പേജുകൾ വളരെ വേഗത്തിൽ ലോഡ് ചെയ്യും. നിങ്ങൾക്ക് php കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കണമെങ്കിൽ വ്യക്തിഗത പേജുകൾ, തുടർന്ന് ആദ്യം മൂല്യം 0 ഉപയോഗിച്ച് no_cache വേരിയബിൾ സൃഷ്ടിക്കുക:

$no_cache 0 സജ്ജമാക്കുക;

അപ്പോൾ ഞങ്ങൾ പരിശോധിക്കുന്നു ആവശ്യമായ പരാമീറ്ററുകൾ, അത് പൊരുത്തപ്പെടുന്നുവെങ്കിൽ, മൂല്യം 1 ആയി സജ്ജമാക്കുക:

എങ്കിൽ ($request_method = POST)
{
$no_cache 1 സജ്ജമാക്കുക;
}

പൂർത്തിയാക്കാൻ, ഞങ്ങൾ ഈ വേരിയബിളിൻ്റെ മൂല്യം ഇനിപ്പറയുന്ന നിർദ്ദേശങ്ങളിലേക്ക് കൈമാറുന്നു, ഇത് ആവശ്യമില്ലാത്തപ്പോൾ കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കും:

fastcgi_cache_bypass $no_cache;
fastcgi_no_cache $no_cache;

ഇൻകമിംഗ്, ഔട്ട്‌ഗോയിംഗ് എന്നിവയ്‌ക്കായുള്ള പ്രധാന സംഭരണ, പ്രോസസ്സിംഗ് സിസ്റ്റങ്ങളിലേക്കുള്ള അഭ്യർത്ഥനകളോടുള്ള പ്രതികരണത്തിൻ്റെ വേഗതയാണ് കാഷിംഗിൻ്റെ പ്രധാന പ്രശ്നം ഘടനാപരമായ വിവരങ്ങൾ.

എന്താണ് ചെയ്യേണ്ടതെന്ന് സങ്കൽപ്പിക്കുക വേഗത്തിലുള്ള കൈമാറ്റംവിവരങ്ങൾ, എന്നാൽ ഡാറ്റ ആക്‌സസിൻ്റെ വേഗത വളരെ കുറവാണ്. അല്ലെങ്കിൽ മറ്റൊരു സാഹചര്യം: വേഗത നല്ലതാണ്, പക്ഷേ പര്യാപ്തമല്ല ലഭ്യമായ മെമ്മറിഒന്നുകിൽ ചാനൽ വീതി അപര്യാപ്തമാണ്, അല്ലെങ്കിൽ പ്രോസസ്സറും ഡിസ്ക് ഘടകങ്ങളും ടാസ്ക്കിൽ ഇടപെടുന്നു. ഈ സാഹചര്യത്തിൽ, കാഷെ ചെയ്യൽ മാത്രമാണ് ഈ സാഹചര്യത്തിൽ നിന്ന് രക്ഷപ്പെടാനുള്ള ഏക മാർഗം.

കാഷിംഗ് കാഷിംഗ് തരങ്ങൾ (അല്ലെങ്കിൽ കാഷെ) ഡാറ്റ സംഭരിച്ചിരിക്കുന്ന ഒരു തരം ഇൻ്റർമീഡിയറ്റ് ബഫറാണ്. കാഷിംഗിന് നന്ദി, ഓരോ ഉപയോക്താവിനും സൈറ്റ് പേജ് പുനർനിർമ്മിക്കില്ല. കാഷിംഗ് നിങ്ങളെ പ്രവർത്തിക്കാൻ അനുവദിക്കുന്നു വലിയ തുകസാധ്യമായ ഏറ്റവും കുറഞ്ഞ സമയത്തിനുള്ളിൽ ഡാറ്റ പരിമിതമായ വിഭവങ്ങൾ(സെർവറും ഉപയോക്താവും).

ക്ലയൻ്റ് ഭാഗത്തും സെർവറിലും ഡാറ്റ പ്രോസസ്സ് ചെയ്യാൻ കഴിയുമെന്ന് മനസ്സിലാക്കേണ്ടത് ആവശ്യമാണ്. കൂടാതെ, സെർവർ ഡാറ്റാ പ്രോസസ്സിംഗ് കേന്ദ്രീകൃതമാണ്, കൂടാതെ സംശയിക്കാത്ത നിരവധി ഗുണങ്ങളുണ്ട് (പ്രത്യേകിച്ച് പിന്തുണാ സേവനത്തിന്).


നിരവധി തരം കാഷിംഗ് ഉണ്ട്, ഓരോ തരവും അതിൻ്റെ സവിശേഷതകളും ഉപയോഗത്തിനുള്ള ശുപാർശകളും പരിഗണിക്കാൻ ഞങ്ങൾ നിർദ്ദേശിക്കുന്നു: 1. ബ്രൗസർ കാഷിംഗ് അല്ലെങ്കിൽ ക്ലയൻ്റ് കാഷിംഗ് എന്നത് ബ്രൗസറിന് നിലവിലുള്ള കാഷെ ചെയ്‌ത പകർപ്പ് ഉപയോഗിക്കാനുള്ള ഒരു കമാൻഡാണ്. വീണ്ടും സന്ദർശിക്കുമ്പോൾ, ബ്രൗസറിന് 304 പരിഷ്‌ക്കരിക്കാത്ത തലക്കെട്ട് നൽകുകയും പേജ് അല്ലെങ്കിൽ ഇമേജ് തന്നെ ലോക്കലിൽ നിന്ന് ലോഡ് ചെയ്യുകയും ചെയ്യുന്നു എന്നതിൻ്റെ അടിസ്ഥാനത്തിലാണ് അത്തരം കാഷിംഗിൻ്റെ പ്രവർത്തനം. ഉപയോക്തൃ കാഷെ. സന്ദർശകൻ്റെ ബ്രൗസറിനും സൈറ്റ് ഹോസ്റ്റിംഗിനും ഇടയിലുള്ള ട്രാഫിക്കിൽ നിങ്ങൾ ലാഭിക്കുന്നുവെന്ന് ഇത് മാറുന്നു. അതനുസരിച്ച്, നിങ്ങളുടെ വെബ്സൈറ്റ് പേജ് വേഗത്തിൽ ലോഡ് ചെയ്യാൻ തുടങ്ങുന്നു. 1.1 ഫയലുകളും ചിത്രങ്ങളും കാഷിംഗ് ബ്രൗസർ കാഷിംഗ് അടങ്ങിയിരിക്കുന്ന സൈറ്റുകൾക്ക് അനുയോജ്യമാണ് ഒരു വലിയ സംഖ്യഇമേജുകൾ: നിങ്ങൾ സൈറ്റ് തുറക്കുമ്പോഴെല്ലാം ചിത്രം ഡൗൺലോഡ് ചെയ്യപ്പെടുന്നില്ല, പക്ഷേ ബ്രൗസർ കാഷെ വഴി ലോഡുചെയ്യുന്നു.


ഇത് കാഷിംഗിൻ്റെ ആദ്യ ലെവലാണ്, അതിൽ ഹെഡർ തിരികെ നൽകുന്നത് ഉൾപ്പെടുന്നു "കാലഹരണപ്പെട്ടു"തലക്കെട്ടും "304 പരിഷ്കരിച്ചിട്ടില്ല". 2 ആഴ്ചത്തേക്കുള്ള കാഷിംഗ് ഏറ്റവും ഫലപ്രദമായി കണക്കാക്കപ്പെടുന്നു.

എന്നിരുന്നാലും, ഇൻ ഈ സാഹചര്യത്തിൽഇതുണ്ട് പ്രധാനപ്പെട്ട സൂക്ഷ്മത: സൈറ്റിലെ ചിത്രം മാറുകയാണെങ്കിൽ, ബ്രൗസർ അതിനെക്കുറിച്ച് ഉടനടി അറിയുകയില്ല, എന്നാൽ നിങ്ങൾ കാലഹരണപ്പെടാൻ കാത്തിരിക്കുകയോ ബ്രൗസറിൽ തന്നെ കാഷെ പുനഃസജ്ജമാക്കുകയോ ചെയ്താൽ മാത്രം. ഫയൽ നിരന്തരം മാറുകയും നിങ്ങൾ അത് നിരന്തരം സേവിക്കുകയും ചെയ്യുകയാണെങ്കിൽ ഇത് വളരെ കാര്യക്ഷമമല്ല നിലവിലുള്ള പതിപ്പ്.

1.2 https കാഷിംഗ് കർശനമായ സുരക്ഷ പോലുള്ള പ്രത്യേക തലക്കെട്ടുകൾ. https വഴി തിരഞ്ഞെടുത്ത ഡൊമെയ്ൻ എപ്പോഴും ആക്‌സസ് ചെയ്യാൻ ബ്രൗസറിനെ അനുവദിക്കുന്നു. ഇത് ഈ അവസ്ഥയെ വളരെ കർക്കശമായി സംരക്ഷിക്കുന്നു, ഇത്തരത്തിലുള്ള കാഷെ റദ്ദാക്കുകയാണെങ്കിൽ, നിലവിലെ തലക്കെട്ടുകൾ അവഗണിച്ചുകൊണ്ട് ബ്രൗസർ കുറച്ച് സമയത്തേക്ക് https വഴി പേജ് ലോഡ് ചെയ്യാൻ ശ്രമിക്കുന്നത് തുടരും.1.3 സർട്ടിഫിക്കേഷൻ അതോറിറ്റി കാഷിംഗ് എന്ന് വിളിക്കപ്പെടുന്ന സർട്ടിഫിക്കേഷൻ അതോറിറ്റി സ്റ്റാമ്പ് .

ഈ തരംഉപയോക്താവിൻ്റെ ബ്രൗസറിൽ നിന്നുള്ള അഭ്യർത്ഥന പ്രോസസ്സ് ചെയ്യുന്നതിനും നിങ്ങളുടെ സൈറ്റ് ശരിയാണെന്ന് സ്ഥിരീകരിക്കുന്നതിനും നിങ്ങളുടെ സൈറ്റിൻ്റെ ഉപയോക്താക്കൾ സർട്ടിഫിക്കറ്റ് അതോറിറ്റിക്ക് (നിങ്ങളുടെ സർട്ടിഫിക്കറ്റിൻ്റെ സാധുതയ്ക്ക് ഉത്തരവാദിയായ ഒരു നിശ്ചിത സെർവറാണ്) കാത്തിരിക്കേണ്ടതില്ലെങ്കിൽ കാഷിംഗ് നിർബന്ധമായി കണക്കാക്കുന്നു. അത് അംഗീകരിച്ചു.

1.4 പേജ് കാഷിംഗ് ഒരു പേജ് ഇതിനകം സൃഷ്ടിച്ചുകഴിഞ്ഞാൽ, നിങ്ങൾ അതിൻ്റെ പ്രസക്തി നിരന്തരം നിരീക്ഷിക്കേണ്ടതുണ്ട്. ഇത് ചെയ്യുന്നതിന് നിങ്ങൾ പരിഷ്ക്കരണ സമയ ട്രാക്കിംഗ് ഉള്ള ഒരു സെർവർ-സൈഡ് കാഷെ ഉപയോഗിക്കണം വ്യക്തിഗത ഭാഗങ്ങൾപേജുകൾ (ഡൈനാമിക് ആയി ജനറേറ്റ് ചെയ്ത നിരവധി ബ്ലോക്കുകളിൽ നിന്നാണ് പേജ് നിർമ്മിച്ചതെങ്കിൽ). ഈ സമീപനത്തിലൂടെ, സെർവറിൽ നിന്നുള്ള ഓരോ പ്രതികരണത്തിലും പേജ് മാറ്റിയ സമയം സൂചിപ്പിക്കുന്ന പ്രത്യേക തലക്കെട്ടുകൾ അടങ്ങിയിരിക്കുന്നു, പിന്നീട് സൈറ്റ് പേജ് വീണ്ടും ആക്‌സസ് ചെയ്യുമ്പോൾ ഉപയോക്താവിൻ്റെ ബ്രൗസർ അയയ്‌ക്കുന്നു. സെർവറിന് അത്തരം തലക്കെട്ടുകൾ ലഭിക്കുമ്പോൾ, നമുക്ക് വിശകലനം ചെയ്യാം നിലവിലുള്ള അവസ്ഥപേജ് (ഒരുപക്ഷേ അത് റെൻഡർ ചെയ്തേക്കാം), എന്നാൽ പേജ് ഉള്ളടക്കത്തിന് പകരം തലക്കെട്ട് നൽകുക "304 പരിഷ്കരിച്ചിട്ടില്ല"എന്തിനായി ഉപയോക്തൃ ബ്രൗസർനിങ്ങളുടെ (ഉപയോക്താവിൻ്റെ ബ്രൗസർ) കാഷെയിൽ നിന്ന് നിങ്ങൾക്ക് പേജ് കാണിക്കാൻ കഴിയുമെന്നാണ് അർത്ഥമാക്കുന്നത്.

തീർച്ചയായും, സെർവർ-സൈഡ് കാഷെ ട്രാക്കിംഗ് ഉപയോഗിക്കാതെ ഉചിതമായ തലക്കെട്ടുകൾ അയയ്‌ക്കാൻ കഴിയും, എന്നാൽ ഈ സാഹചര്യത്തിൽ മിക്ക ഉപയോക്താക്കൾക്കും പേജ് ഉള്ളടക്ക അപ്‌ഡേറ്റ് വളരെ വൈകി ലഭിക്കും. ഈ സമീപനത്തിലൂടെ, ബ്രൗസർ ചിലപ്പോൾ അപ്‌ഡേറ്റുകൾക്കായി സെർവറിനെ വോട്ടെടുപ്പ് നടത്തുന്നു, എന്നാൽ ഓരോ ബ്രൗസറിനും ആവൃത്തിയും നിയമങ്ങളും അതിൻ്റെ ഡെവലപ്പർ കോൺഫിഗർ ചെയ്‌തിരിക്കുന്നു, അതിനാൽ നിങ്ങളുടെ ഉപയോക്താക്കൾക്ക് കൃത്യസമയത്ത് അപ്‌ഡേറ്റുകൾ ലഭിക്കുമെന്ന് പ്രതീക്ഷയില്ല.

സാധാരണഗതിയിൽ, കാഷെ ഉപയോക്തൃ തരം അനുസരിച്ച് തിരിച്ചിരിക്കുന്നു:

ഈ വിഭജനം ഓരോ അംഗീകൃത ഉപയോക്താവിനുമുള്ള ഉള്ളടക്കത്തിൻ്റെ പ്രത്യേകതയും അതിഥി ഉപയോക്താക്കൾക്കുള്ള ഉള്ളടക്കത്തിൻ്റെ പൊതുവായതയുമാണ്. മിക്ക സൈറ്റുകളിലും, ഒരു അനധികൃത ഉപയോക്താവിന് സൈറ്റിൻ്റെ ഉള്ളടക്കം മാറ്റാൻ കഴിയില്ല, അതിനാൽ അതിൻ്റെ ഉള്ളടക്കത്തെ സ്വാധീനിക്കുന്നു.

ട്രാഫിക്കും പേജുകൾ ലോഡുചെയ്യുന്ന സമയവും ലാഭിക്കാൻ ബ്രൗസർ കാഷെ നിങ്ങളെ അനുവദിക്കുന്നു. എന്നാൽ സേവിംഗ് ഇഫക്റ്റ് നേടുന്നതിന്, ഉപയോക്താവ് ഒരിക്കലെങ്കിലും ഞങ്ങളുടെ പേജ് സന്ദർശിക്കണം, അതായത് ലോഡ് ഓണാണ് സെർവർ ഉറവിടങ്ങൾകുറയും, പക്ഷേ കാര്യമായി ഇല്ല.

2. സെർവർ കാഷിംഗ് സെർവർ കാഷിംഗ് എന്നത് ഡാറ്റ സംഭരിച്ചിരിക്കുന്ന എല്ലാ തരം കാഷിംഗുകളെയും സൂചിപ്പിക്കുന്നു സെർവർ വശം. ക്ലയൻ്റ് ബ്രൗസറുകൾക്ക് ഈ ഡാറ്റ ലഭ്യമല്ല. കാഷെ സൃഷ്‌ടിക്കുകയും സംഭരിക്കുകയും ചെയ്യുന്നത് ഒന്നോ രണ്ടോ അടിസ്ഥാനത്തിലായിരിക്കും (പലതും, ഈ സാഹചര്യത്തിൽ, ക്ലയൻ്റ് ഉപകരണങ്ങളാണ്).

2.1 മുഴുവൻ പേജ് കാഷിംഗ് ഏറ്റവും കാര്യക്ഷമമായ കാഷെ. എന്തുകൊണ്ടാണ് അവൻ രസകരമായത്? അതിൻ്റെ ഏറ്റവും വലിയ നേട്ടം, പേജ് ആക്‌സസ് ചെയ്‌ത നിമിഷത്തിൽ തന്നെ സേവിക്കുന്നു എന്നതാണ്, തൽഫലമായി, മെമ്മറി വേഗതയിലും ചെറിയ സിപിയു ഉപയോഗത്തിലും ഏറ്റവും ദുർബലമായ സെർവറിൽ പോലും ദശലക്ഷക്കണക്കിന് അഭ്യർത്ഥനകൾ പ്രോസസ്സ് ചെയ്യാൻ കഴിയും.

പിംഗ് വേഗതയിലോ വേഗത്തിലോ പ്രവർത്തിക്കുന്ന ഒരു വെബ്‌സൈറ്റിനെക്കുറിച്ച് എല്ലാവരും എപ്പോഴെങ്കിലും സ്വപ്നം കണ്ടിരിക്കാം.
എന്നാൽ ഇത്തരത്തിലുള്ള കാഷെയ്ക്ക് അതിൻ്റെ ദോഷങ്ങളുമുണ്ട്: ഉദാഹരണത്തിന്, അംഗീകൃത ഉപയോക്താവിനായി പേജുകൾ കാഷെ ചെയ്യാനുള്ള കഴിവില്ലായ്മ, അല്ലെങ്കിൽ ഉപയോക്താവിൻ്റെ നിലവിലെ വേരിയബിളുകളെ ആശ്രയിച്ചിരിക്കുന്ന പേജ് ഉള്ളടക്കം.

സെർവറിന് ബാഹ്യ ഡാറ്റയുടെ എല്ലാ സ്റ്റാറ്റിക് അവസ്ഥകളും അറിയാമെങ്കിൽ ഈ കാഷെ ഉപയോഗിക്കുക, ഉദാഹരണത്തിന്: uri, get (ഇല്ലാതെ അധിക പാരാമീറ്ററുകൾ), ഉപയോക്താവിന് അംഗീകാരമില്ല - അതായത്, അതിഥി ഉപയോക്താക്കൾക്ക് അനുയോജ്യമായ പേജ് അവസ്ഥയാണിത്. അത്തരം കാഷിംഗ് ഉപയോഗിച്ച്, സൈറ്റിൻ്റെ അല്ലെങ്കിൽ ആപ്ലിക്കേഷൻ്റെ ആർക്കിടെക്ചർ എല്ലായ്‌പ്പോഴും ഇൻകമിംഗ് അഭ്യർത്ഥനകൾ ഒരേ രീതിയിൽ പ്രോസസ്സ് ചെയ്യുകയും ഒരേ തരത്തിലുള്ള പ്രതികരണങ്ങൾ നൽകുകയും വേണം എന്ന വസ്തുത പരിഗണിക്കുക. ഏതെങ്കിലും ആപ്ലിക്കേഷനിലോ വെബ്‌സൈറ്റിലോ ഈ അവസ്ഥ നിലവിലുണ്ട്; നിങ്ങൾ അത് ട്രാക്ക് ചെയ്‌ത് അതിൽ ഒരു കാഷെ പ്രയോഗിക്കേണ്ടതുണ്ട്.

മുഴുവൻ പേജുകളും കാഷെ ചെയ്യുന്നത് ചില അടിയന്തര സന്ദർഭങ്ങളിൽ ഉപയോഗിക്കാറുണ്ട്, അതേസമയം പേജ് കാഷെ മുൻകൂട്ടി സൂക്ഷിക്കുന്നു നിർദ്ദിഷ്ട സമയം(2 മിനിറ്റിൽ നിന്ന്), സെർവറിൽ നിന്നുള്ള പ്രതികരണങ്ങൾ ഒരേ തരത്തിലുള്ളതാണ് (ഇത് കാഷെ ചെയ്യാൻ ബ്രൗസറിനെ അനുവദിക്കരുത്).

2.2 php ഫയലുകളുടെ സമാഹാരത്തിൻ്റെ ഫലങ്ങൾ കാഷെ ചെയ്യുന്നു ശുദ്ധമായ കോഡ് കംപൈലേഷനും കംപൈലേഷൻ സമയത്ത് അതിൻ്റെ ഒപ്റ്റിമൈസേഷനും (സ്ക്രിപ്റ്റ് സബ്സ്റ്റിറ്റ്യൂഷൻ) തമ്മിൽ ഒരു വ്യത്യാസമുണ്ട്. മിക്കതും വ്യക്തമായ ഉദാഹരണങ്ങൾ:

രണ്ട് തരത്തിലുള്ള കാഷിംഗും ഒരു പ്രോജക്റ്റിൽ ഉപയോഗിക്കാൻ കഴിയും, എന്നാൽ ഓരോന്നിനും അതിൻ്റേതായ സൂക്ഷ്മതകളുണ്ട്, അത് കോഡ് എഴുതുമ്പോൾ കണക്കിലെടുക്കേണ്ടതാണ്.

2.3 ഒരു പേജിൻ്റെ വ്യക്തിഗത ബ്ലോക്കുകൾ കാഷെ ചെയ്യുന്നു ഇത് ഒരുപക്ഷേ ഏറ്റവും രസകരവും എന്നാൽ സങ്കീർണ്ണവുമായ കാഷിംഗ് ഇനമാണ്. എന്നിരുന്നാലും, ഇത് ഫലപ്രദമാകാം, പൊതുവെ കാഷിംഗ് തത്വങ്ങൾ വിശദീകരിക്കാൻ ഏറ്റവും എളുപ്പമുള്ള ഉദാഹരണമാണിത്.
നിരീക്ഷിക്കേണ്ടത് ആവശ്യമാണ്: പട്ടികകളുടെ അവസ്ഥ, ഉപയോക്തൃ സെഷൻ്റെ അവസ്ഥ, POST സമയത്ത് കാഷിംഗ് പ്രവർത്തനരഹിതമാക്കണോ അതോ അഭ്യർത്ഥനകൾ നേടുക(http ചോദ്യം), നിലവിലെ വിലാസത്തെ ആശ്രയിക്കൽ, കാഷിംഗിൻ്റെ സ്ഥിരത (മുമ്പത്തെ വ്യവസ്ഥകൾ മാറുമ്പോൾ) അല്ലെങ്കിൽ അതിൻ്റെ ചലനാത്മക ക്രമീകരണം.

യഥാർത്ഥ (അംഗീകൃത) ഉപയോക്താക്കളിൽ നിന്നുള്ള ഡാറ്റാബേസ് അഭ്യർത്ഥനകളുടെ എണ്ണം കുറയ്ക്കുന്നതിന്, നിങ്ങൾക്ക് വേണമെങ്കിൽ മറ്റ് തരത്തിലുള്ള കാഷിംഗുകളേക്കാൾ മികച്ച പേജുകളുടെ വ്യക്തിഗത ബ്ലോക്കുകൾ കാഷെ ചെയ്യുന്നത് നല്ലതാണ്. വഴിയിൽ, ശരിയായി വ്യക്തമാക്കിയ ഡിപൻഡൻസികൾക്കൊപ്പം, തുടർന്നുള്ള എല്ലാ തരത്തിലുള്ള കാഷിംഗുകളേക്കാളും ഇത് കൂടുതൽ കാര്യക്ഷമമായി പ്രവർത്തിക്കും.

എന്തുകൊണ്ടാണ് ഇത്തരത്തിലുള്ള കാഷിംഗ് വളരെ പ്രധാനമായിരിക്കുന്നത്? സൈറ്റിൻ്റെ പിഎച്ച്പി ഭാഗത്തിനായി സെർവറുകളുടെ പൂൾ വിപുലീകരിക്കുന്നതിനേക്കാൾ വളരെ ബുദ്ധിമുട്ടുള്ള കാര്യമാണ് ഡാറ്റാബേസ് സെർവറുകളുടെ പൂൾ വികസിപ്പിക്കുന്നത് എന്നതാണ് കാര്യം. മാത്രമല്ല, ഒന്നിലധികം ഡാറ്റാബേസുകളിൽ പ്രവർത്തിക്കുമ്പോൾ ഉണ്ടാകുന്ന പൊരുത്തക്കേടുകളേക്കാൾ PHP കാഷെ സ്റ്റേറ്റ് വൈരുദ്ധ്യങ്ങൾ പരിഹരിക്കാൻ വളരെ എളുപ്പമാണ്.

2.4 php കാഷിംഗ്പങ്കിടാത്ത ഉറവിടങ്ങളെ അടിസ്ഥാനമാക്കി, ചോദ്യങ്ങൾ സ്റ്റാൻഡേർഡ് ചെയ്യുന്നതിനും ഡാറ്റ നേടുന്നതിനും ഏറ്റവും അനുയോജ്യം വിഭവങ്ങൾ പങ്കിട്ടു, ഒരു പേജ് സൃഷ്ടിക്കുമ്പോൾ PHP ഉറവിടങ്ങൾ നിരവധി തവണ ആക്സസ് ചെയ്യുന്ന ആന്തരിക വേരിയബിളുകളുടെ സാന്നിധ്യം 2.5 പങ്കിട്ട ഉറവിടങ്ങളെ അടിസ്ഥാനമാക്കിയുള്ള PHP കാഷിംഗ് സീരിയലൈസ് ചെയ്ത ഡാറ്റ സംഭരിക്കുന്നതിന് ഈ കാഷിംഗ് ഉപയോഗിക്കുക. ഉദാഹരണത്തിന്: കോൺഫിഗറേഷൻ ഫയൽ, ടേബിൾ സ്റ്റേറ്റ്, ഫയൽ സിസ്റ്റം ലിസ്റ്റുകൾ. എന്നിരുന്നാലും, ടൈംസ്റ്റാമ്പിനൊപ്പം പ്രവർത്തിക്കുന്നതിൻ്റെ പ്രത്യേകതകളും അന്വേഷണ കാഷെ നിരന്തരം പുനഃസജ്ജമാക്കുന്നത് എങ്ങനെ ഒഴിവാക്കാം എന്നതും പരിഗണിക്കാൻ ഞാൻ ആഗ്രഹിക്കുന്നു.

തീർച്ചയായും, നിങ്ങൾ പുതിയ സാമഗ്രികൾ സമർപ്പിക്കേണ്ട ഒരു സാഹചര്യം നിങ്ങൾ പതിവായി കാണാറുണ്ട്, അതിൻ്റെ പ്രസിദ്ധീകരണ തീയതി നിലവിലെ ടൈംസ്റ്റാമ്പ് ഇതിനകം അനുവദിച്ചിട്ടുണ്ടോ? ലളിതമായി പറഞ്ഞാൽ,

എവിടെ കാണിക്കുന്നു