2009-11-05 85 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