Среды: 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)". Это работает для одного
словарь, однако, для другого, он предлагает "соединение
«Сбросить по одноранговой сети». Я почти уверен, что словари
тот же формат. Мне было странно иметь такую фатальную ошибку.
Кроме того, я попытался выполнить следующие шаги, чтобы определить проблему
источник:
- Я отдельно вставляю каждый словарь в Redis из сброшенного
база данных (один новый сервис для каждого словаря). Я до сих пор получил первый
вставка словаря сработала, а вторая не удалась.
- Я подозреваю, что проблема из внутреннего словаря,
поэтому я попытался сделать некоторые проверки типа переменной и длины строки, все ключи
и значения прошли простую проверку. Но у меня все еще есть хранилище
Ошибка второго словаря.
- Если я изменю значения словаря на одну и ту же постоянную переменную
(например, все значения установлены на «abc»), затем хранилище работает.
- Если я использую r.hmset для каждого ключа и значения во вторых парах, это
работает так же.
Но почему "r.mset (the_dictionry)" может работать для одного словаря, но не работает
в другом?
Должно быть что-то не так в значениях словаря или в некоторых ошибках
в клиенте Python.
Я не знаю, как мне определить источник проблемы. пожалуйста
дайте мне несколько советов.
Я искал в Google и пытался восстановить журнал сервера, но все равно не могу его получить
через.
====== Ответ на отзыв ======
Вот фрагмент кода:
db3 = redis.Redis(db=2)
db3.flushdb()
db3.mset(oov_dist_dict)
Но если я последую обратной связи, чтобы разделить словарь и вставить в redis, Это работает. Не могли бы вы объяснить это немного? Я не видел никаких заявлений в официальных документах.