2010-03-08 62 views
1

我使用python的memcache扩展,并且我有一个很奇怪的问题。 Memcached拒绝使用某些密钥存储完全相同的数据,并成功缓存其他一些密钥。为什么memcached会拒绝使用某些键存储数据?

>>> import memcache 
>>> conn = memcache.Client('121.0.0.1:11211', debug=0) 
>>> conn.set('138b9c95d693760840aab85ee5591d2', 'test'); 
True 
>>> conn.set('138b9c95d693760840aab85ee5591d3', 'test'); 
0 
>>> conn.set('138b9c95d693760840aab85ee5591d4', 'test'); 
True 
>>> conn.set('138b9c95d693760840aab85ee5591d5', 'test'); 
0 
>>> conn.set('138b9c95d693760840aab85ee5591d6', 'test'); 
True 
>>> conn.set('138b9c95d693760840aab85ee5591d7', 'test'); 
0 
>>> conn.set('138b9c95d693760840aab85ee5591d8', 'test'); 
True 
>>> conn.set('138b9c95d693760840aab85ee5591d9', 'test'); 
True 
>>> conn.set('138b9c95d693760840aab85ee5591e0', 'test'); 
True 
>>> conn.set('138b9c95d693760840aab85ee5591e1', 'test'); 
True 

我不太明白。我应该补充一点,我将memcache模块的1.40版本与运行在Ubuntu Server 9.10上的memcached 1.2.8一起使用。我使用相同的密钥重新启动了memcached守护进程,结果相同。

谢谢。

更新:我将memcached升级到版本1.4.2,打包在lucid回购上,结果完全相同。

更新#2:在新的Ubuntu安装程序上输入完全相同的命令给出相同的结果,相同的地方。

更新#3作为建议,一个列表,而不是在客户端insantiation的字符串:

>>> import memcache 
>>> conn = memcache.Client(['121.0.0.1:11211'], debug=0) 
>>> conn.set('138b9c95d693760840aab85ee5591d2', 'test'); 
0 
>>> conn.set('138b9c95d693760840aab85ee5591d3', 'test'); 
0 
>>> conn.set('138b9c95d693760840aab85ee5591d4', 'test'); 
0 
>>> conn.set('138b9c95d693760840aab85ee5591d5', 'test'); 
0 
>>> conn.set('138b9c95d693760840aab85ee5591d6', 'test'); 
0 
>>> conn.set('138b9c95d693760840aab85ee5591d7', 'test'); 
0 
>>> 
>>> conn = memcache.Client('121.0.0.1:11211', debug=0) 
>>> conn.set('138b9c95d693760840aab85ee5591d2', 'test'); 
True 
>>> conn.set('138b9c95d693760840aab85ee5591d3', 'test'); 
0 

回答

1

的第一个参数是个列表

conn = memcache.Client(['127.0.0.1:11211'], debug=0) 
+0

坎。是的。 但是恐怕这个列表越来越糟糕,我无法解释。我无法让它工作。 查看我的更新#3 – Pierre 2010-03-09 00:05:20

+0

您确定您的memcached正在运行吗?用'debug = 1'试试 – 2010-03-09 00:11:05

+0

哼哼......是的。但我现在感觉非常愚蠢,因为我在IP地址中输入了121而不是127 ... 现在它工作。 现在,我不明白它为什么工作... 谢谢,顺便说一下。 – Pierre 2010-03-09 00:18:06

相关问题