2012-06-27 12 views
6

: Dolu olduğunda, memcached'de ve memcache performansında veri nasıl değiştirilir? Memcached vikiden

tablosu dolu

, takip eden ekler eski veriler, en son olarak temizlenmiştir (HDB) sıralaması kullanılacaktır neden olur. veri

  1. tasfiye edilecektir: Aşağıdaki sorularım var

? Ekleme ile daha eski olanı mı yoksa en yakın zamanda kullanılmış olan mı? Geçtiğimiz günlerde erişilen veri d1 ise en eski olan ekleme ve önbellek dolduğunda veri değiştirilirse d1 mu değiştirilecek?

  • Memcached ile etkileşimde bulunmak için PHP kullanıyorum. Verilerin memcached olarak nasıl değiştirildiğine dair kontrol sahibi olabilir miyim? Bazı verilerimin, önbellek dolu olsa bile süresi doluncaya kadar değiştirilmesini istemediğim gibi. Bu veriler değiştirilmemeli, yerine başka veriler alınabilir.

  • Veri süresi dolduğunda hemen kaldırılıyor mu?

  • Memcached performansında depolanan anahtar sayısının etkisi nedir?

  • -k seçeneğinin anlamı memcached.conf? "Tüm sayfalanmış belleği kilitle" ne anlama geldiğini anlayamıyorum. Ayrıca, README'deki açıklama yeterli değildir. ne olur

  • +2

    LRU, Memcache wiki ... diyor ki, o zaman ben varsaymak için kanıt yoksa aksi durumda –

    +1

    Dürüst olmak gerekirse, ya çok düşündüğün gibi geliyor ya da memcached istediğin gibi değil. belleğe alındığında, sıkça kullanılan verilerin hızlı bir şekilde kullanılabilmesi amacıyla bir * önbellek * vardır, aksi takdirde yüklenmesi biraz zaman alabilir. Bu verinin her seferinde ya da ne kadar süreyle ya da ne zaman kullanılabileceğine dair hiçbir garanti vermez. Birincil veri deposu değil. Tek yaptığı şey, * belki de * bazen verinin alınmasını hızlandırır, dönem. Belirli verilerin önbellekte, periyodda olacağını asla düşünemezsiniz. Bu, önbelleklemenin doğasıdır. – deceze

    +0

    http://en.wikipedia.org/wiki/Cache_algorithms#Least_Recently_Used - bunu okudunuz mu? –

    cevap

    16
    memcached bellekte yeni veri depolaması gerekir ve bellek zaten dolu

    şudur ki: aa uygun * Süresi dolmuş giriş için

    • memcached aramalar ve eğer biri bulunursa, Bu girdideki verileri değiştirir. Hangi nokta 3) veriler hemen kaldırılmaz yanıt veriyor, ancak yeni veri ayarlanmalıdır zaman, uzay hiçbir süresi dolan giriş bulunursa, en önce kullanılan bir değiştirilir

    * bulundurun yeniden ayrılan Memcached bellek ile nasıl ilgilenir akıl: o farklı boyutlarda blokları ayırır, böylece önbellekte ayarlanacak verilerin boyutu hangi giriş kaldırılır karar verirken rol oynar. Girişler 1K'a kadar 2K, 4K, 8K, 16K ... vb.

    Tüm bu bilgiler in the documentation adresinde bulunabilir, bu yüzden dikkatli bir şekilde okuyun. @deceze'nin söylediği gibi, memcached, verinin hafızada bulunacağını ve bir önbellek kaçırma fırtınasına hazırlanmanız gerektiğini garanti etmez. Bir fırtınadan kaçınmak için ilginç bir yaklaşım, bazı rasgele ofset ile sona erme süresini ayarlamaktır, 10 + [0..10] dakika, yani bazı öğeler 10 için saklanacak ve 20 dakika için diğer öğelerin tümü aynı anda sona ermez).

    • verilerini yüklemek için önbelleği isteyen bir ısınma komut: önbellekte şey korumak istiyorsanız

      Ve, iki şey yapmak zorunda.Bu nedenle her zaman son kullanma tarihi

    • Ürün için 2 son kullanma süresi: bir gerçek son kullanma süresi, diyelim ki 30 dakika; başka - öğeyle birlikte önbelleğe alınmış - mantıksal son kullanma süresi, 10 dakika içinde diyelim. Verileri önbellekten aldığınızda, mantık sona erme zamanını kontrol edip süresi dolduysa, verileri yeniden yükleyin ve önbellekte başka bir 30 dakika için ayarlayın. Bu şekilde gerçek önbellek son kullanma süresine asla vurmazsınız ve veriler periyodik olarak yenilenir. "Memcached.conf" -k seçeneği önemi nedir

    5). Ben değilim "tüm disk belleği belleği kilitle" ne anlama geldiğini anlayamıyorum. Ayrıca README'de açıklaması da yeterli değildir.

    Memcached için ne kadar bellek ayıracağınız önemli değil, yalnızca ihtiyaç duyduğu miktarı kullanır, örn. Sadece kullanılan bellek ayırır. Bununla birlikte, -k seçeneğiyle, memcached başlatıldığında tüm bellek ayrılır, bu nedenle gereksinim duyulursa olsun ya da olmasın, bellek miktarını her zaman ayırır

    İlgili konular