django-cachebot

Yazılım ekran görüntüsü:
django-cachebot
Yazılım detaylar:
Versiyon: 0.4.1
Qayıt: 11 May 15
Geliştirici: David Ziegler
Lisans: Ücretsiz
Popülerlik: 11

Rating: 3.0/5 (Total Votes: 1)

django-cachebot otomatik önbelleğe alma ve kaybedilmemesi sağlayan Django uygulaması.
Kurulum
& Nbsp; 1. easy_install django-cachebot veya django-cachebot yüklemeniz pip
& Nbsp; 2.
& Nbsp; cachebot sizin INSTALLED_APPS ekle
& Nbsp; 3.
Ve nbsp, mesela cachebots.backends içinde arka ucu, biri bir önbellek arka uç ayarlama:
& Nbsp; CACHE_BACKEND = 'cachebot.backends.memcached:? //127.0.0.1: 11211 / timeout = 0'
Güncel desteklenen backends şunlardır:
cachebot.backends.dummy
cachebot.backends.memcached
cachebot.backends.pylibmcd
Cachebot maymun CacheBotManager ve CachedQuerySet sizin Django projesi tarafından kullanılan varsayılan yapmak için varsayılan Django yöneticisi ve QuerySet yamalar.
Kullanım
Bu gibi görünüyordu bir sorgu vardı ve bunu önbelleğe istedim varsayalım:
Photo.objects.filter (user = kullanıcı, status = 2)
Sadece bu yüzden gibi QuerySet zincirine .cache () ekleyin:
Photo.objects.cache (). Filtre (kullanıcı = kullanıcı, status = 2)
Aşağıdaki durumlardan herhangi karşılandığı takdirde bu sorgu geçersiz alacak:
Sorgu tarafından döndürülen nesneleri 1. Bir değişir.
2. Kullanıcı değişir.
3. Fotoğraf = 2 değiştirilmiş ve statüye sahiptir.
4. Fotoğraf değiştirilmiş ve kullanıcı = kullanıcı vardır.
Bu önbelleğe durumu = 2 Resim kaydedildiğinde her zaman geçersiz istemiyorum çünkü bu iptal kriterleri, muhtemelen çok temkinli olduğunu. Ince ayar invalidation kriterleri için, biz sadece belirli alanlarda geçersiz belirtebilirsiniz. Örneğin:
Photo.objects.cache ('Kullanıcı'),. Filtre (kullanıcı = kullanıcı, status = 2)
Aşağıdaki durumlardan herhangi karşılandığı takdirde bu sorgu geçersiz alacak:
Sorgu tarafından döndürülen nesneleri 1. Bir değişir.
2. Kullanıcı değişir.
3. Fotoğraf değiştirilmiş ve kullanıcı = kullanıcı vardır.
django-cachebot da ileriye ilişkiler select_related ve ilişkileri tersine kolu, yani:
Photo.objects.select_related (). Önbellek ('Kullanıcı'),. Filtre (user__username = "david", status = 2)
Photo.objects.cache ('Kullanıcı'),. Filtre (user__username = "david", status = 2)
Photo.objects.cache ('message__sender.') Filtre (message__sender = kullanıcı, status = 2)
Ayarlar
CACHEBOT_CACHE_GET default: Yanlış
CACHEBOT_CACHE_GET = True ise, tüm objects.get sorguları otomatik olarak önbelleğe alınır. Bu yüzden gibi yönetici düzeyinde geçersiz kılınabilir:
sınıf Fotoğraflar (models.Model):
& Nbsp; ...
& Nbsp; nesneleri = models.Manager (cache_get = true)
CACHEBOT_CACHE_ALL default: Yanlış
CACHEBOT_CACHE_ALL = True ise, tüm sorgular otomatik olarak önbelleğe edilecektir. Bu yüzden gibi yönetici düzeyinde geçersiz kılınabilir:
sınıf Fotoğraflar (models.Model):
& Nbsp; ...
& Nbsp; nesneleri = models.Manager (cache_all = true)
CACHE_PREFIX default: ''
Aynı memcached sunucu paylaşımı bir gelişme ve üretim sunucusu olduğunu varsayalım. Normalde bu her sunucu diğer sunucunun önbellek tuşları üzerine olabilir, çünkü kötü bir fikirdir. Eğer ayarlara CACHE_PREFIX eklerseniz, tüm önbellek tuşları bu sorunu önleyebilirsiniz böylece onlara eklenen bu önek olacaktır.
Uyarılar (Önemli!)
& Nbsp; 1. django-cachebot django 1.2 ya da daha fazla gerektirir
& Nbsp; 2. Ekleme / a ManyRelatedManager ile çıkarılması nesneleri otomatik olarak geçersiz olmaz. Işlemleri, bu tip sinyallerin 1.2 kadar Django'ya değildir olmasıdır. O zamana kadar, elle şöyle bu sorguları geçersiz gerekir:
& Nbsp; cachebot.signals gelen invalidate_object ithal
& Nbsp; user.friends.add (arkadaş)
& Nbsp; invalidate_object (kullanıcı)
& Nbsp; invalidate_object (arkadaş)
& Nbsp; 3. saymak () sorguları önbelleğe almazsınız.
& Nbsp; 4. Bir dizi ya da sorguyu dışlamak alanı üzerinde geçersiz ediyorsanız, bu sorgular tablo değişiklikleri yaparken her şeyi geçersiz alacak. Kullanıcı masaya şey değişti Örneğin aşağıdaki geçersiz alacağı:
. & Nbsp; Photo.objects.cache ('Kullanıcı') filtre (= kullanıcıları user__in, status = 2)
. & Nbsp; Photo.objects.cache ('Kullanıcı') hariç (kullanıcı = kullanıcı, status = 2)
& Nbsp; 5. Muhtemelen önbellek durumunu kontrol etmek django-memcache-statü gibi bir araç kullanmalıdır. Memcache taşmasına ve anahtarları bırakarak başlarsa, bu sorgular geçersiz olsun olmayabilir mümkündür.
& Nbsp; 6. .values_list () henüz önbelleğe almaz. Bu yerine böyle bir şey yapmanız gerekir:
& Nbsp; [. Fotoğraf ['id'] Photo.objects.cache ('Kullanıcı') 'de fotoğraf (kullanıcı = kullanıcı) Değerler, filtre (' id ')]
& Nbsp; 7. Ben kaçırdım kenar durumlar vardır mümkündür. django-cachebot o bebeklik hala, bu yüzden hala çift kontrol sorguları önbelleğe ve geçersiz alıyorsanız gerektiğini söyledi. . Eğer herhangi bir garip çelişkileri fark varsa bana bildirin lütfen

Gereksinimleri :

  • Python
  • Django

Geliştirici Diğer yazılım David Ziegler

django-urlcrypt
django-urlcrypt

12 May 15

Yorumlar django-cachebot

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!