2009-11-05 55 views
0

我的Django应用程序通过cmemcache使用memcached。一个问题涌现出来,当我试图监视其用法:通过cmemcache或django访问memcached统计信息返回警告

我试图访问统计memcached的通过两个Django提供和cmemcache:

Django的:

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。他们有很多很多已知的bug,并且已经有很多年了。其次,我们非常频繁地向memcached添加统计信息,因此如果这些图书馆在遇到新的统计信息时抱怨,则应该向其作者投诉。

另外,我不相信cmemcache是​​维护。它基于已废弃的memcached C库,它有几个已知的错误。鼓励该库的用户迁移到libmemcached。

+0

感谢您的回答,我会联系我的托管服务提供商,看他们是否可以升级。但是,cmemcache似乎是Django团队首选的Python绑定:“最快的可用选项是一个名为cmemcache的模块(http://docs.djangoproject.com/zh/dev/topics/cache/)。而cmemcache支持是Django是Django的新成员,从​​Django 1.0开始, – shanyu 2009-11-05 08:03:08

+0

不知道你的托管服务提供者是如何设置的,但是如果他们无法为你更改它,你可以尝试使用纯Python python-memcached包放入你的应用程序。 Django支持它,但不知道它通过CMemcached或其他memcached客户端软件包导入的顺序。 – NerdyNick 2009-11-05 23:37:45

+0

@NerdyNick:谢谢,我会记住使用python-memcached。但首先我会尝试安装一个更新版本的memcached。 – shanyu 2009-11-06 07:51:11