Redis Booksleeve - Как правильно использовать Hash API

Я использую хэш-API Книжного рукава для Redis. Я делаю следующее:

  CurrentConnection.Hashes.Set(0, "item:1", "priority", task.priority.ToString());

  var taskResult = CurrentConnection.Hashes.GetString(0, "item:1", "priority");

  taskResult.Wait();

  var priority = Int32.Parse(taskResult.Result)

Однако я получаю Сводное исключение: "Операция ERR против ключа, содержащего неправильный тип значения"

Я не уверен, что я делаю здесь неправильно (за исключением блокировки задачи:)).

Примечание. CurrentConnection является экземпляром BookSleeve.RedisConnection.

Пожалуйста помоги!

Спасибо

1 ответ

Решение

Это не проблема Книжного рукава - это ошибка redis; фактически, полное сообщение об ошибке, которое вы должны увидеть:

Сервер Redis: ERR Операция с ключом, содержащим неправильный тип значения

(где я пытаюсь прояснить, что эта ошибка произошла от redis, а не от Booksleeve)

Что касается того, что вызывает это: каждый ключ в Redis имеет определенный тип; строка, хеш, список и т. д. Вы не можете использовать хеш-операции с чем-то, что не является хешем.

Таким образом, я предполагаю, что "item:1" уже существует, но не как хеш. У меня есть модульные тесты, которые подтверждают это от Booksleeve (то есть с / без ранее существовавшего нехэш-значения).

Вы можете исследовать это в redis, используя redis-cli или любой другой клиент (telnet работает, одним нажатием), с помощью команды:

type item:1

(спасибо @Sripathi)

Другие вопросы по тегам