Redis Booksleeve - 如何正确使用Hash API

Far*_*ina 2 api hash redis 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)
Run Code Online (Sandbox Code Playgroud)

但是我得到了一个Aggregate异常:"对一个持有错误值的键的ERR操作"

我不确定我在这里做错了什么(除了阻止任务:)).

注意:CurrentConnection是BookSleeve.RedisConnection的一个实例

请帮忙!

谢谢

Mar*_*ell 6

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

Redis服务器:ERR对持有错误值的密钥的操作

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

至于是什么导致这种情况:redis中的每个键都有一个指定的类型; 字符串,哈希,列表等.您不能对不是哈希的东西使用哈希操作.

我的猜测是,"item:1" 已经存在,但是作为哈希以外的东西.我有单元测试,可以从Booksleeve确认这一点(即有/无预先存在的非哈希值).

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

type item:1
Run Code Online (Sandbox Code Playgroud)

(感谢@Sripathi)