Səhifə keşi hazır səhifəni saxlayır və eyni sorğuya təkrar cavab verir. Amma bəzi səhifələr keşlənə bilmir: giriş etmiş istifadəçinin kabineti, səbət, admin paneli. Belə hallarda obyekt keşi işə düşür və verilənlər bazasına gedən təkrar sorğuların qarşısını alır. Ən çox istifadə olunan iki alət Redis və Memcached-dir.
Obyekt keşi nə edir
Sadə misal: səhifə qurularkən sayt yüz dəfə eyni ayarı bazadan soruşur. Hər sorğu kiçik olsa da, cəmi hiss olunur. Obyekt keşi bu nəticəni yaddaşda saxlayır və ikinci sorğuda bazaya heç getmir.
Fayda xüsusən bazanın yüklü olduğu saytlarda görünür: onlayn mağaza, üzvlük saytı, çoxlu plaginli WordPress.
Memcached: sadə və sürətli
Memcached yalnız bir iş görür: açar və dəyər cütünü yaddaşda saxlayır. Quruluşu sadədir, yaddaş sərfiyyatı azdır, sürəti yüksəkdir.
Zəif tərəfi budur ki, məlumat yalnız yaddaşdadır. Server yenidən başladılanda keş tamamilə boşalır. Həm də saxlanan məlumat növü məhduddur, mürəkkəb strukturlar üçün uyğun deyil.
Redis: daha çox imkan
Redis də açar-dəyər anbarıdır, amma daha çox şey bacarır. Siyahı, çoxluq, sıralanmış çoxluq kimi strukturları dəstəkləyir. Məlumatı diskə yaza bilir, yəni server yenidən başlayanda keş itmir. Ayrıca növbə sistemi, sessiya saxlanması və real vaxt bildirişləri üçün də istifadə olunur.
Əvəzində bir az daha çox yaddaş istəyir və konfiqurasiyası bir qədər genişdir.
Praktik seçim
Əksər saytlar üçün cavab budur: Redis seçin. Səbəb sadədir, Redis Memcached-in etdiyi hər şeyi edir və üstəlik daha çoxunu. Sürət fərqi real saytlarda hiss olunmayacaq qədər kiçikdir.
Memcached yalnız bir halda üstündür: yaddaş çox məhduddursa və yeganə ehtiyacınız ən sadə keşdirsə.
Redis-i xüsusilə seçməli olduğunuz hallar:
- Onlayn mağaza, çünki səbət və sessiya saxlanması lazımdır
- Növbə sistemi olan tətbiqlər, məsələn kütləvi e-poçt göndərişi
- Keşin server yenidən başlayandan sonra qalması vacibdirsə
- Bir neçə sayt eyni keş serverini paylaşırsa
WordPress-də necə qurulur
WordPress-in öz obyekt keşi yalnız bir səhifə yüklənişi ərzində işləyir, yəni növbəti sorğuda hər şey yenidən bazadan oxunur. Davamlı keş üçün əlavə plagin lazımdır.
Quraşdırma ardıcıllığı belədir: serverdə Redis xidmətini işə salın, PHP üçün Redis genişlənməsini aktivləşdirin, sonra WordPress tərəfində obyekt keşi plagini quraşdırın. Plagin bağlantını yoxlayır və uğurlu olduqda keş işə düşür.
Nəticəni ölçmək asandır: keşdən əvvəl və sonra səhifə yüklənmə vaxtını və baza sorğularının sayını müqayisə edin. Yüklü saytlarda sorğu sayı çox vaxt bir neçə dəfə azalır.
Diqqət ediləcək məqamlar
Obyekt keşi hər saytda fayda vermir. Kiçik vizit saytında baza sorğuları onsuz da azdır və fərq hiss olunmur. Bu alət yükün real olduğu yerdə mənalıdır.
İkinci məqam yaddaş limitidir. Keşə çox məlumat yığılırsa və limit kiçikdirsə, sistem köhnə yazıları atmağa başlayır və effektivlik düşür.
Üçüncü məqam məlumat köhnəlməsidir. Məzmun dəyişəndə keş təmizlənməlidir. Yaxşı plaginlər bunu avtomatik edir, amma nadir hallarda əl ilə təmizləmə lazım gəlir.
Yekun
Yeni layihə üçün Redis seçin, çünki daha çox imkan verir və gələcəkdə növbə və sessiya kimi ehtiyaclarda da işə yarayır. Obyekt keşini isə səhifə keşindən sonra qurun: əvvəlcə hazır səhifələri keşləyin, sonra keşlənə bilməyən hissələri sürətləndirin. Hostinq.az serverlərində Redis mövcuddur və paneldən aktivləşdirilir.