Redis Booksleeve - 如何正确使用Hash API

时间:2012-05-08 19:06:08

标签: api redis hash booksleeve

我正在使用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的实例

请帮忙!

由于

1 个答案:

答案 0 :(得分:6)

这不是书架问题 - 这是一个redis错误;实际上,您应该看到的完整错误消息是:

  

Redis服务器:ERR针对持有错误值的键的操作

(我试图说明这个错误来自redis,而不是Booksleeve)

至于导致这种情况的原因:redis中的每个键都有一个指定的类型; string,hash,list等。你不能对非哈希的东西使用哈希操作。

我的猜测是,“item:1”已经存在,但不是哈希。我有单元测试,可以从Booksleeve确认这一点(即有/无预先存在的非哈希值)。

您可以使用redis-cli或任何其他客户端(telnet工作,推送)使用以下命令在redis中进行调查:

type item:1

(感谢@Sripathi)