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
坎。是的。 但是恐怕這個列表越來越糟糕,我無法解釋。我無法讓它工作。 查看我的更新#3 – Pierre 2010-03-09 00:05:20
您確定您的memcached正在運行嗎?用'debug = 1'試試 – 2010-03-09 00:11:05
哼哼......是的。但我現在感覺非常愚蠢,因爲我在IP地址中輸入了121而不是127 ... 現在它工作。 現在,我不明白它爲什麼工作... 謝謝,順便說一下。 – Pierre 2010-03-09 00:18:06