Устранена проблема «сброса соединения по одноранговой сети» при сохранении выгруженной строки json с помощью клиента Python в Redis 2.4.8 - PullRequest
1 голос
/ 27 февраля 2012

Среды: Ubuntu 10.04 64bit, Python Redis client 2.4.1, Redis 2.4.8, Python 2.6.5

Описание проблемы:

У меня есть несколько больших словарей Python (ключ1: значение1, ключ2: значение2, ...). Каждый ключ представляет собой короткую строку, а каждое значение представляет собой простой json строка. Я хотел бы хранить словари в разных базах данных Redis, Я использовал следующий код: "r.mset (the_dictionary)". Это работает для одного словарь, однако, для другого, он предлагает "соединение «Сбросить по одноранговой сети». Я почти уверен, что словари тот же формат. Мне было странно иметь такую ​​фатальную ошибку.

Кроме того, я попытался выполнить следующие шаги, чтобы определить проблему источник:

  1. Я отдельно вставляю каждый словарь в Redis из сброшенного база данных (один новый сервис для каждого словаря). Я до сих пор получил первый вставка словаря сработала, а вторая не удалась.
  2. Я подозреваю, что проблема из внутреннего словаря, поэтому я попытался сделать некоторые проверки типа переменной и длины строки, все ключи и значения прошли простую проверку. Но у меня все еще есть хранилище Ошибка второго словаря.
  3. Если я изменю значения словаря на одну и ту же постоянную переменную (например, все значения установлены на «abc»), затем хранилище работает.
  4. Если я использую r.hmset для каждого ключа и значения во вторых парах, это работает так же.

Но почему "r.mset (the_dictionry)" может работать для одного словаря, но не работает в другом?

Должно быть что-то не так в значениях словаря или в некоторых ошибках в клиенте Python.

Я не знаю, как мне определить источник проблемы. пожалуйста дайте мне несколько советов.

Я искал в Google и пытался восстановить журнал сервера, но все равно не могу его получить через.

====== Ответ на отзыв ====== Вот фрагмент кода:

db3 = redis.Redis(db=2)
db3.flushdb()
db3.mset(oov_dist_dict)

Но если я последую обратной связи, чтобы разделить словарь и вставить в redis, Это работает. Не могли бы вы объяснить это немного? Я не видел никаких заявлений в официальных документах.

...