Я использую расширение 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 9.10. Я перезапустил демон memcached, тот же результат, с теми же ключами.
Спасибо.
Обновление: Я обновил memcached до версии 1.4.2, упакованный в ясные репозитории, с тем же результатом.
Обновление # 2: Точные команды, введенные на другом сервере с новой настройкой ubuntu, дают одинаковый результат в тех же местах.
Обновление # 3 Как и было предложено, вместо списка в Client Client можно указать список:
>>> 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
Первым параметром должен быть список
conn = memcache.Client(['127.0.0.1:11211'], debug=0)
debug=1