2012-05-08 42 views
2

我正在使用Redis的Booksleeve hash API。我做了以下内容:Redis Booksleeve - 如何正确使用Hash 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) 

但是我收到一个聚合例外: “针对的关键ERR操作抱着一种错误的价值”

我不知道我在做什么错在这里(除了阻止任务:))。

注:CurrentConnection是BookSleeve.RedisConnection

的实例,请帮帮忙!

感谢

回答

6

这不是一个Booksleeve问题 - 这是一个错误的Redis;其实,你应该看到错误信息是:

Redis的服务器:错误操作对关键抱着一种错误的价值

(这里我尽量说清楚这个错误来自redis,而不是booksleeve)

至于什么原因导致:redis中的每个键都有一个指定的类型;字符串,哈希,列表等。您不能对不是散列的内容使用散列操作。

那么,我的猜测是,“item:1”已经存在,但是不是散列。我有单元测试来确认这是从Booksleeve(即有/没有预先存在的非哈希值)。

您可以使用Redis的-CLI或任何其他客户端(远程登录的作品,在推)Redis的调查此,用命令:

type item:1 

(感谢@Sripathi)

+0

更易于使用'键入'而不是'对象编码'。请参阅http://redis.io/commands/type –

+0

@SripathiKrishnan d'oh!那是我正在寻找的那个;谢谢 –

+0

谢谢!我的关键:价值已经存在,这是抛出我的错误! :)你是老板! :) – mzalazar

相关问题