APC Cache PHP oturumları depolamak nasıl?

8 Cevap php

Benim için çok yavaş ve ağrılı disk oturumları saklamak. Ben çok yüksek trafik yaşıyorum. Ben bunu nasıl yapabilirim, Gelişmiş PHP Cache oturumu depolamak istiyor?

8 Cevap

Ben bir lütuf olarak 100 puan sunarak daha iyi cevaplar kandırmaya çalıştı, ama cevapların hiçbiri gerçekten tatmin edici edildi.

Bu gibi önerilen çözümleri toplamak istiyorum:

Using APC as a session storage

Orada uygun kilitlemeyi sağlar APC hiçbir mekanizma, Ama bu kilitleme kimse geri yazmadan önce okunur başlangıçta oturum verilerini değiştiren sağlamak için önemlidir çünkü APC gerçekten, bir oturum deposu olarak kullanılamaz.

Bottom line: kaçının, bu iş olmaz.

Alternatives

Oturum işleyicileri bir dizi mevcut olabilir. "Kayıtlı eylemcileri kaydetmek" için Session bölümünde phpinfo() çıkışını kontrol edin.

File storage on RAM disk

Out-of-the-box çalışır, ama bilinen nedenlerle RAM disk olarak monte edilmiş bir dosya sistemine ihtiyaç duymaktadır.

Shared memory (mm)

PHP mm etkin derlendi kullanılabilir. Bu pencerelerin üzerinde yerleşik olduğunu.

Memcache(d)

PHP bunun için işleyici bir kurtarış özel oturumu ile birlikte geliyor. Yüklü memcache sunucusu ve PHP istemci gerektirir. İki memcache uzantıları hangi bağlı olarak yüklü, kaydetmek işleyicisi memcache veya memcached denir ya.

Teorik olarak, sizin için şeffaf yapmak için APC kullanan bir custom session handler yazmak mümkün olmalı. Ancak, aslında hızlı bir beş dakikalık arama gerçekten umut verici bir şey bulmak mümkün olmamıştır; Çoğu insan baytkodu önbellek için APC kullanarak ve memcached kendi oturumları koyarak gibi görünüyor.

Sadece bu tür tmpfs veya ramfs zamanda ciddi bir performans artışı var, ve gibi bir RAM diske (PHP oturum dosyalarının saklandığı yerde ya,) sizin / tmp diski koyarak çok daha fazla olurdu sıfır kod değişiklikleri ile şeffaf anahtarı,.

Performans artışı daha az olabilir, ama yine de on-disk oturumları önemli ölçüde daha hızlı olacak.

Bu kurabiye saklamak (şifreli) veya MongoDB. APC gerçekten bu amaç için uygun değildir.

PHP internals paylaşılan bellek içinde oturum verilerinizi saklayabilirsiniz.

session.save_handler = mm

Ama mevcut olması gerekir: http://php.net/manual/en/session.installation.php

Başka bir iyi bir çözüm Memcached PHP oturumları saklamak için

session.save_handler = memcache

. APC_journaling veya birlikte benzer kullanılan şey - oturum erişimi (açık-yazma-close / başlangıç) her zaman döngüsel olduğu Oturum başlayarak, Açılış ve Yazma hemen ardından Kapanış Açık Oturum (Unirgy en Cevap içinde kilitleme sorunu çözmek gerekir Ben de İkinci sınıf düşünün Oturumlar A oturumu başlar .... sonuçta daha iyi olurdu ve her oturum atanan benzersiz bir dış kimliği ile yazılır ile, oluşturulan / o oturumu kapatılır ve bir dergi (_store & _add yoluyla apc önbellek dizisi) açıldı Daha sonra, okuma doğrulanmış ve oturumuna yazılmış olabilir oturumuna gitmek amacıyla başka yazma için (benzersiz kimliği tespit!) apc sonraki uygun fırsatta.

I found a good blog post Explaining that the Locking havoc Sven refers to comes from the Session blocking until it's closed or script execution ends. The session being immediately closed doesn't prevent reading just writing. http://konrness.com/php5/how-to-prevent-blocking-php-requests - link to the blog post. Hope this helps.

PHP dış verileri önbelleğe

Eğitimi Bağlantı - http://www.gayadesign.com/diy/caching-external-data-in-php/


How to Use APC Caching with PHP

Eğitimi Bağlantı - http://www.script-tutorials.com/how-to-use-apc-caching-with-php/