2014-09-09 6 views
0

я их обоих, но я не получу None каждый раз, когда я пытаюсь получить некоторые ключевыеКэширование с помощью Memcached и питон-Memcache

>>from django.core.cache import cache #no errors 
>>cache.set('value1','value2',39) #no errors 
>>cache.get('value1') #no errors but no value either 

в settings.py я получил

CACHES = { 
'default':{ 
    'BACKEND':'django.core.cache.backends.memcached.MemcachedCache', 
    'LOCATION':'127.0.0.1:1991', 
    'TIMEOUT': 1200, 
    } 
} 

что происходит неправильно? У меня даже нет ни малейшего представления о том, что отлаживать или с чего начать ...

+1

Вы говорите, что вы установили их обоих. Работает ли сервер memcached? –

+0

bah dum tsssssss! Как запустить его на моей машине dev? Не было в документах! – SuburbanFilth

ответ

1

Вы уверены, что memcached на самом деле запущен и что он настроен на прослушивание 127.0.0.1 порта 1991? По умолчанию memcached прослушивает порт 11211.

django.core.cache.cachedjango.core.cache.cache играет немой, когда memcache не хранит ключи, не вызывает никаких исключений и не возвращает никаких ошибок.

Вы можете проверить более непосредственно, как это кэш:

import memcache 

for port in (1991, 11211): 
    print "Testing memcached on port %d" % port 
    mc = memcache.Client(['127.0.0.1:%d' % port]) 

    if mc.set('value1', 'value2'): 
     print "stored key value pair" 
     if mc.get('value1') == 'value2': 
      print "successfully retrieved value" 
      break 
     else: 
      print "Failed to retrieve value" 
    else: 
     print "Failed to store key value pair" 
+0

Как я уже сказал в своем другом комментарии, как запустить сервер memcache на моей машине dev? плюс, как настроить его на другой порт? – SuburbanFilth

+0

'man memcached'? Просто «memcached» запустит его при прослушивании на порту 11211 на всех интерфейсах на локальном компьютере. Используйте 'memcached -p 1991', чтобы использовать порт 1991. Добавьте опцию '-vv', чтобы увидеть много журналов. – mhawke

Смежные вопросы