2010-03-08 63 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

相關問題