Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

PHP ve Memcache


Öne çıkan mesajlar

Mesaj tarihi:
Selam arkadaşlar,

Yukarıdaki 2 konuya hakim arkadaşların yardımına ihtiyacım var. Web sayfasında tüm verileri cache üzerinde tutuyoruz

Örn: sepet, sepet ürün sayıları, yorumlar,ürünler,vs... e ticarette aklınıza ne geliyorsa cache üzerinde.

Cacheleri uniq key belirleyip her kullanıcı için ayrı ayrı tutuyoruz ve haliyle 10-15k üzerinde cache key oluşuyorum.

Sistemde ürüne ait bir güncelleme olduğunda o ürüne bağlı tüm cacheler sistemden düşürülüyor. Bazı durumlarda bu cache sayıları çok fazla olduğunda cache sunucusu verileri silemiyor.

Böyle bir problem yaşıyorum konuda biraz acil bilgili arkadaşlar yardım edebilirse sevinirim.
Mesaj tarihi:
datanin dusmesi eski veriye izin verme vb icin biseyler yapmadiysaniz kacinilmaz da

buyuk guncellemelerde cikan sorunu detaylandirabilir misin
sorun olarak ne veriyor misal

ben yogun yuk binince cokuyor bazi nodelar diye algiladim mesela, bu durumda hafiza sorunlari veya bug report
Mesaj tarihi:
Biraz daha açmak gerekirse konuyu.

Ben içinde basket kelimesi geçen keyleri silmek istiyorum ama sistemde çok fazla oluştuğu için sistem silemiyor bir hatada almıyorum.
Mesaj tarihi:
cache olayini abartmissiniz gibime geldi bana yani benim bildigim cache cogunlukla, one to many iliskilerde yapilir, mesela anasayfa 1 milyon kullanici icin statiktir cachelersin yada,
kategori urunleri keza electronics kategorisini caclersin ama product base yaparsan scalable olmaz memory i patlatirsin gibi geliyo.

bende cacleri silmekten daha cok, scalable bi caching mechanizm izlemeniz daha faydali olur
Mesaj tarihi:
Evet biraz boku çıktı. Satın ala kadar neredeyse DB ile işlemimiz olmuyor.

Ama yinede sistem 10k key silebilmesi lazım diye düşünüyorum :/
Mesaj tarihi:
key sayisinda sorun olma sorununu anlamadim ama yasadigin sey baska yerde. milyon key olan sistemler kurdum sorunsuz. her sey cachelenebilir bu arada memory ye vs bagli olarak. ben genelde cachelerin herseyi. memory ucuz cunku
Mesaj tarihi:
Elindeki key sayisina gore proportional delete zaman nin olur, silemiyor diye birsey yok, senin sikintin baska birsey belli ki.

Cache e basket iceren key ler ile value silerken, key i ilk koyarken olusturdugun algo ile yeniden yaratip remove ediyorsun tahminim, generate edip sonra unuttugun key ler mevcuttur buyuk ihtimal.
Mesaj tarihi:
Her kullanıcıya uniq bir ID veriyorum. 40 karakterden oluşan ve keyler bu ID lere göre belirleniyor.

Örnek:
basket_product_count_3241231423121sd21sd1
basket_product_list_3241231423121sd21sd1
member_favorite_product_list_3241231423121sd21sd1
...

Bunun gibi keylerim var ben ürün ile ilgili bir güncelleme yaptığım zaman. Tüm keyleri tarayıp içinde "product" geçen keyleri sistemden siliyorum. Sorunum tam burada kaynaklanıyor ve keyler silinemiyor.

Cache Key yönetimi için başka yöntemler varsa onları da deneyebilirim.

Silme işleminden sonra basket_product_count alabilmek için tekrar cache atmıyorum. Kullanıcı ilk girişinde DB sorup daha sonra cacheliyor ve sonraki girişlerinde cacheden getiriyor.
Mesaj tarihi:
Cache süreleri üyeleri ilgilendiren yerlerde 2 saat. sepet vs..

ama ürün detayları felan sınırız o üründen güncelleme olana kadar.

cacheleri indexlemiyorum
Mesaj tarihi:
kadar key siliyosan aslinda yapinda bi sorunv ardir. o dedigin spesifik sorunla karsilasmadimc unku hic o kadar key i ayni anda silmedim.

ornegin ne guncelleme yapiyosun da hepsini silmen gerekiyor?
Mesaj tarihi:
urun fiyatini zaten 15 bin key de tutuyosan hata.

expire field i 2 saat tutacaksin, 2 saat sonra tekrar yenilenecek zaten. ya da bi tane cache de urun bilgisi tutacaksin, digerlerinde referans tutacaksin. sistemini bilmiyorum ama o kadar datayi denormalize ediyosan zaten biraz bastan sorunlu gibi.
Mesaj tarihi:
Şöyle anlatayım,

Bir ürünü sepetine eklerken ürünün minimum değerlerini fiyat,ürün adı,resim,kdv gibi verileri kopyalıyorum sepet tablosuna.

Bu yüzden kullanıcı sepeti cachelendiği için fiyatıda cacleniyor. Ürün fiyatında değişiklik olduğu zaman mecburen onu cacheden düşürmem gerekiyor.

Yapıda hata olabilir ama değiştirmem için uzun zaman gerekiyor şuanda o kadar zamanım yok :(
Mesaj tarihi:
Memcache yerine Memcehed kullanmaya başladık. Yapıda değişiklik yaptık testlerim sırasında 5 10k key silebiliyorum bugün canlı ortamda testleri yapacağız inş problem olmaz
Mesaj tarihi:
Normalda sıfırlanmıyor veritabanına soruyor sonra tekrar cacheliyor.

Ama ürünün fiyatı bittiği zaman yada stok değiştiyse uyarı basıyoruz.
×
×
  • Yeni Oluştur...