2012-09-10 2 views
12

Speicherung Wenn ich python manage.py shell laufen und dann:Django Cache cache.set Nicht Daten

from django.core.cache import cache 
cache.set("stack","overflow",3000) 
print cache.get("stack") 

(output:) None 

Ich habe versucht memcache neu starten und hier ist das, was in meinen Einstellungen ist:

CACHES = { 
    'default' : { 
    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 
    'LOCATION' : '127.0.0.1:11211', 
    } 
} 
+3

Haben Sie einen von Python-Memcached oder pylibmc installiert? –

+0

Ja, ich habe python-memcached installiert –

+0

Haben Sie überprüft, dass der Port 11211 geöffnet ist? –

Antwort

2

Stellen Sie sicher, es mit der korrekter Cache Versuchen Sie from django.core.cache import caches, und sehen Sie dann den Inhalt von caches.all(). Es sollte nur eine Instanz von django.core.cache.backends.memcached.MemcachedCache haben.
Wenn ja, versuchen Sie, direkt auf diese zuzugreifen, z. anstelle von Djangos zu debuggen Cache-Proxy oder Ihre Konfiguration

from django.core.cache import caches 
m_cache = caches.all()[0] 
m_cache.set("stack","overflow",3000) 
m_cache.get("stack") 

Dies könnte Ihr Problem nicht lösen, aber zumindest bekommen Sie näher Memcached.

0

Ich glaube, django erweitert den Schlüssel mit einer Version. Zum Beispiel

django_memcache.set('my_key', 'django', 1000) 

den Schlüssel :1:my_key in memcache gesetzt:

<36 set :1:my_key 0 1000 6 
>36 STORED 

Wenn Sie jedoch den Schlüssel über Telnet oder Python-Memcached-Modul gesetzt ist, wird es den rohen Schlüssel zu speichern, wie erwartet:

<38 set my_key 0 1000 13 
>38 STORED 

Also, vielleicht fragen Sie nicht den richtigen Schlüssel?

Siehe https://docs.djangoproject.com/en/1.10/topics/cache/#cache-key-transformation

Verwandte Themen