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)