2012-09-10 14 views
12

Cuando corro python manage.py shell y luego:Django caché cache.set No almacenar datos

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

(output:) None 

Traté de reiniciar Memcache, y aquí es lo que hay en mi configuración:

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

¿Tiene uno de pitón-memcached o pylibmc instalado? –

+0

Sí, tengo python-memcached instalado –

+0

¿Has verificado que el puerto 11211 está abierto? –

Respuesta

2

Asegúrese de que está utilizando el corregir el caché Pruebe from django.core.cache import caches, y luego vea el contenido de caches.all(). Solo debe tener una instancia de django.core.cache.backends.memcached.MemcachedCache.
Si es así, intente acceder a eso directamente, p.

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

esto podría no resolver su problema, pero al menos se puede acercar más a la depuración de Memcached en lugar de proxy de caché de Django o su configuración.

0

Creo que django aumenta la clave con una versión. Por ejemplo,

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

se establezca la clave :1:my_key en Memcache:

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

Sin embargo, si se establece la clave a través de telnet o módulo python-memcached, almacenará la llave en bruto como se esperaba:

<38 set my_key 0 1000 13 
>38 STORED 

Entonces, ¿quizás no está consultando la clave correcta?

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

Cuestiones relacionadas