我正在使用Redis的Booksleeve哈希api。我正在做以下事情:
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)
但是我得到了一个Aggregate异常: “对一个持有错误值的密钥的ERR操作”
我不确定我在这里做错了什么(除了阻止任务:))。
注意:CurrentConnection是BookSleeve.RedisConnection的实例
请帮忙!
由于
答案 0 :(得分:6)
这不是书架问题 - 这是一个redis错误;实际上,您应该看到的完整错误消息是:
Redis服务器:ERR针对持有错误值的键的操作
(我试图说明这个错误来自redis,而不是Booksleeve)
至于导致这种情况的原因:redis中的每个键都有一个指定的类型; string,hash,list等。你不能对非哈希的东西使用哈希操作。
我的猜测是,“item:1”已经存在,但不是哈希。我有单元测试,可以从Booksleeve确认这一点(即有/无预先存在的非哈希值)。
您可以使用redis-cli或任何其他客户端(telnet工作,推送)使用以下命令在redis中进行调查:
type item:1
(感谢@Sripathi)