2009-11-05 1 views
0

Приложение Django использует memcached через cmemcache. Проблема возникла, когда я пытался контролировать его использование:доступ к файлам memcached через cmemcache или django возвращает предупреждение

Я попытался получить доступ к статистике Memcached обеспечивает как через Django и CMemCache:

Джанго:

from django.core.cache import cache 
cache._cache.get_stats() 
[[email protected]] mcm_server_stats():3027: unknown stat variable: pointer_size 

CMemCache:

import cmemcache 
client=cmemcache.Client(['127.0.0.1:62656',]) 
client.get_stats() 
[[email protected]] mcm_server_stats():3027: unknown stat variable: pointer_size 

Я могу получить не более, чем предупреждение. Тем не менее, Memcached сам предоставляет статистику без проблем:

telnet 127.0.0.1 62656 
stats 
... 

Веб-страница CMemCache упоминает, что «libmemcache-1.4.0.rc2 не совместим с Memcached 1.2.1, это приводит к get_stats не возвращаются и не статистика». Приложение работает на Debian. Версия memcached - 1.2.2. Я понятия не имею, есть ли проблема несовместимости.

Есть ли кто-нибудь, кто столкнулся с этой проблемой и имеет решение?

ответ

1

Во-первых, вы не должны запускать эти версии memcached. У них много и много известных ошибок и много лет.

Во-вторых, мы часто добавляем статистику в memcached, поэтому, если эти библиотеки жалуются, когда сталкиваются с новой статистикой, вы должны жаловаться их авторам.

Кроме того, я не верю, что поддерживается cmemcache. Он основан на устаревшей библиотеке с memcached C, в которой есть несколько известных ошибок. Пользователям этой библиотеки рекомендуется перейти на libmemcached.

+0

Спасибо за ответ, я свяжусь с моим хостинг-провайдером, чтобы узнать, могут ли они обновиться. Однако cmemcache, по-видимому, является предпочтительным связыванием Python командой Django: «Самый быстрый доступный вариант - это модуль, называемый cmemcache (http://docs.djangoproject.com/en/dev/topics/cache/). Поддержка cmemcache новый для Django, начиная с Django 1.0. – shanyu

+0

Не знаете, как настроен ваш хостинг-провайдер, но если они не могут изменить его для вас. Вы можете попробовать использовать пакет python-memcached Pure Python, разместив его в своем приложении. Django действительно поддерживает его, но не знает его порядка импорта по CMemcached или другим клиентским пакетам memcached. – NerdyNick

+0

@NerdyNick: Спасибо, я буду помнить, используя python-memcached. Но прежде всего, я попытаюсь установить более новая версия memcached. – shanyu