2017-01-04 2 views
1

Cache-Speicher-First-Time-Schreiben Frage auf Stackoverflow. Ich benutze Python 2.7.11 und Djnago 1.10.2. Ich habe Produktmodelle erstellt und 1000 Produkte in meiner Datenbank gespeichert. (Postgrelsql) Eigentlich habe ich Django memcached verwendet, aber es funktioniert nicht.Wie api mit Hilfe von Django memcached

Following steps:- 1. Added settings.py in caches backends. 

     CACHES = { 
     'default': { 
      'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 
      'LOCATION': 'product_cache_table', 
     } 
    } 

Dann "Erstellen der Cache-Tabelle." Datenbank-Caching mit Django Memcached: -

Django kann seine zwischengespeicherten Daten in Ihrer Datenbank speichern. Dies funktioniert am besten, wenn Sie einen schnellen, gut indizierten Datenbankserver haben. Um eine Datenbanktabelle als Cache-Backend zu verwenden:

Setzen Sie "BACKEND" auf "django.core.cache.backends.memcached.MemcachedCache". Setzen Sie "LOCATION" auf "tablename", den Namen der Datenbanktabelle. Dieser Name kann beliebig sein, solange es sich um einen gültigen Tabellennamen handelt, der noch nicht in Ihrer Datenbank verwendet wird.

In this example, the cache table’s name is "product_cache_table:" 
CACHES = { 
    'default': { 
     'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 
     'LOCATION': 'product_cache_table', 
    } 
} 

Dann "Erstellen der Cache-Tabelle." Bevor Sie den Datenbank-Cache verwenden, müssen Sie die Cache-Tabelle mit diesem Befehl erstellen:

python manage.py createcachetable 
Write business login. (product/views.py) 

django.views.decorators.cache.cache_page()¶ 
def heavy_view(request): 
    cache_key = 'product' 
    cache_time = 18 # time to live in seconds 
    result = Product.objects.all() # some calculations here 
    for l in result: 
     a = cache.set(cache_key, l, cache_time) 

    c = cache.get(cache_key) 

    return HttpResponse(c) 

Wenn ich die URL traf es speichert alle Produkte in product_cache_table aber nur product_name gespeichert werden. wenn wir diese Daten bekommen, bekommen wir nur Produktname, aber ich möchte alle Attribute in dieser Tabelle. Wie Api mit Django Memcached im Cache gespeichert wird. Wie Workflow in Django Memcached. Ich habe Dokumentation gelesen

Antwort

2

Memcache ist Schlüssel-Wert. Das bedeutet, dass ein Schlüssel einen Wert hat. Sie tun es als gleichen Schlüssel mit verschiedenen Werten. So wird der letzte Wert dort gesetzt. Stattdessen wie

cache.set(cache_key, list of products, cache_time) 
+0

danke, aber diff-Taste in diff Wert gesetzt, dann, wie Sie alle Felder im Modell bekommen. Wir erhalten nur einzelne Feld-Cache-Daten. –

+0

Thanku Herr, es funktioniert richtig. –

-2

Ich verwendete Django Memcached in Projekten. Es funktioniert richtig.