1


2

memcachedがいくつかのキーを持つデータの保存を拒否するのはなぜですか?

pythonにはmemcache拡張機能を使用していますが、非常に奇妙な問題があります。 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

よくわかりません。 Ubuntu Server 9.10で実行されているmemcached 1.2.8でmemcacheモジュールのバージョン1.40を使用することを追加する必要があります。 memcachedデーモンを再起動しましたが、同じキーで同じ結果になりました。

ありがとう。

更新: memcachedをバージョン1.4.2にアップグレードし、明快なリポジトリにパッケージしましたが、まったく同じ結果になりました。

更新#2: ubuntuを新しくセットアップして別のサーバーに入力したコマンドとまったく同じコマンドを実行すると、同じ場所で同じ結果が得られます。

  • Update#3 *提案されているように、Client 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 回答


1


最初のパラメータはリストでなければなりません

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