Почему memcached отказывается хранить данные с некоторыми ключами? - PullRequest
1 голос
/ 09 марта 2010

Я использую расширение memcache для python, и у меня очень странная проблема. 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

Я не очень понимаю. Я должен добавить, что я использую версию 1.40 модуля memcache с memcached 1.2.8, работающим на Ubuntu Server 9.10. Я перезапустил демон memcached, тот же результат, с теми же ключами.

Спасибо.

Обновление: Я обновил memcached до версии 1.4.2, упакованный в репозитории Lucid, с тем же результатом.

Обновление № 2: Точно такие же команды, введенные на другом сервере с новой установкой Ubuntu, дают тот же результат, те же места.

Обновление # 3 Как предлагается, со списком вместо строки в объявлении клиента:

>>> 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 голос
/ 09 марта 2010

Первым параметром должен быть список

conn = memcache.Client(['127.0.0.1:11211'], debug=0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...