PHP Başlangıç ​​verileri önbelleğe

3 Cevap php

Ben bir Twitter XML dosyası XML sonuçları geçmesi SimpleXML kullanıyorum ama PHP ile sonuçlarını önbelleğe olarak ben tamamen kayboldum. This article bazı yardım gibi görünüyor, ama ben memcache geldim (ve memcached. Hadi, namers.) Yanı sıra, ve ben ne yapmak hiçbir fikrim yok.

Ben bu kullanıyorum:

$sxml = simplexml_load_file(
    'http://api.twitter.com/1/qworky/lists/qworkyteam/statuses.xml');

foreach($sxml->status as $status){
    $name = $status->user->name;
    $image = $status->user->profile_image_url;
    $update = $status->text;
    $url = "http://twitter.com/" . $status->user->screen_name;
}

basitçe kullanılabilir değişkenlere Twitter listesinin XML verilerini saklamak için. Ancak yapılacak doğru şey nedir? Önbellek dosyası oluşturma ve önbellek dosyası on dakika daha eski ise sadece PHP bloğunu çalıştırmak, aksi önbelleğe değişkenleri hizmet? Nasıl önbelleğe dosya ve DOM arasındaki önbelleğe değişkenler arka-ve-ileri geçmek? Heck, bir önbellek dosya uzantısı ve dosya ne tür var mı?

Burada sağlıklı bir yöne beni işaret edebilir herhangi bir yol için çok teşekkürler.

3 Cevap

Joshua basit bir PHP önbelleğe alma hakkında this article bir göz atın, size göreli kolaylıkla tarif ettik tam olarak yapabilirsiniz (ve evet muhtemelen gitmek için en mantıklı yoldur).

Genel bir kavram olarak, caching uygulanması için bir strateji anlamına gelmez. Yaygın fikir size başlangıçta elde edilen veriler elde nerede daha verimli erişim sağlar yerde bilgi deposu olmasıdır.

Yani bu durumda, o Twitter (genellikle, ağ latency disk GÇ gecikme daha büyüktür) yeniden sorgulamak daha diskten veri almak için daha verimli olur.

(Bellek gecikme disk GÇ gecikme daha az olduğu için) Ayrıca, bellek veri alma diskten bilgi almak daha verimlidir.

Bir kapatma, diyelim ötesinde kalıcı değerler gerekiyorsa söyleniyor, size isterseniz, ya da diskteki bir dosyaya, bellekte Twitter'dan değerlerini saklayabilirsiniz. Bunu nasıl (disk veya bellek, uzantıları, biçim, vs, vs) size kalmış. Bu sizin önbellek bulunuyor.

Eğer dikkatli olmak zorunda şey bayat büyüyen önbelleği. Eğer önbellek sahip bilgiler özgün veri kaynağı ile senkronize dışında olduğunda budur. Eğer önbellek değerleri yerine, uygun kabul edilebilir bayat veri nasıl uygulama için kararlılık ve yeniden sorgulanmasına yapmak zorunda.

Twitter burada önbelleğe konuştuğu zaman, PHP'nin APC, Memcache veya diğer PHP önbelleğe alma mekanizması konuşma değildir. Twitter'da bir kullanıcı oturumu sırasında iki kez twitter dan aynı madde istemek gerekmez böylece kısa vadede sunucu üzerinde bir yere verilerin bir kopyasını tutmak önerir.

1) yakında Twitter'ın API sınırları içine çalışacak ve 2) app yavaş görünür, sorgu yinelenen değil iki nedeni vardır.

Ne yapabilirsiniz üç tarlalar retrival zaman, url karma ve alınan verileri basit bir veritabanı tablosu oluşturmaktır. Önce twitter isteği göndermeden önce bu veritabanını sorgulayabilirsiniz.

Lütfen PHP önbelleğe alma sistemleri; evet orada twitter verileri kaydetmek mümkün ama bu o önbelleklerini amaçlanmıştır değil. Ne APC kurtarmak gerektiğini çok sık kullanıyor olacak veri öğelerdir. Bu genellikle bellekte tutulur.