Ive son zamanlarda ağır mysql yük (bunu yapabilir olduğunca optimize mysql idi) altında olmuştur sitemde memcache uygulanmaktadır. Hepsi benim yük sorunları çözülmüş ve site güzel çalışıyor.
Im şimdi karşı karşıya sorun bayat önbelleğe alınmış değerlerdir. Ben en sayfalarında 1saat otomatik son kullanma süreleri var, ve Im de anahtarı silerken DB chnages değer, ama ben zorluk takip ve verimli bir şekilde tüm anahtarlarını temizleyerek sahip.
Bazı sayfalarda, onun önemsiz. Ben (item_4653 örneğin) anahtar item_id olarak yapabilirsiniz ve bunun için veri güncellenir, veya öğe silindiğinde, anahtar temizlenmektedir.
Ama çoğu sayfalarında, ben, md5 bunu komut dosyası dosya adını + sorgu dizesi alır ve memcache anahtar olarak kullanan. Bu, (çok yaygındır), karmaşık URL'ler için özellikle yararlıdır.
Örneğin ben şu sayfa yüklendi var.
index.php? search_keywords = good & search_section = 1 & sort = bırakma & page = 2
Bu memcache getirilecek öğelerin bir listesini içerecektir. Başka bir kullanıcı daha sonra, orada görünmez dışında "good" başlığında, ve, 2. sayfada görünür değerlerin aralığında olur bir item, gönderilinceye kadar önbellek yenilenir. Ne yapar bu daha karmaşık, yeni eklenen öğe benzersiz olacak ayrıca sort = yeni? Index.php görünür, hem de bu vb index.php? Kategori = some_category? Page = 1 ve Her 1 olmasıdır tuşu (script adı + sorgu dizesi md5).
Onlar canlı DB getirilen olsaydı Yani yeni eklenen madde, sayfaları onlarca görünebilir, ama bayat önbelleği güncellenir kadar alışkanlık onlara herhangi görülebilir. Tek seçenek öğe otomatik olarak sona erecek için beklemektir.
Bu sorun, değerlerin tüm olası önbelleğe alınmış sayfa kombinasyonları için, talep üzerine haberdar olmak için VAR (özel kodlu) benim forum, hatta daha belirgin hale gelir. Ben 4 sayfa konu var, ve ben sayfa 2 3 spam mesaj fark diyelim. Onları sildikten sonra, sayfa 2 yeniden, ama sonra o da sayfa 3 ve 4'ü yeniden inşa etmek için var, aksi takdirde yeni sayfa 2 yeniden yinelenen mesaj olacak ve eski sayfa 3. Thats sadece 1 örnek ..... bu senaryoların düzinelerce vardır için.
Herhangi bir fikir?