Redis HashKey erroring out

本文关键字:out erroring HashKey Redis | 更新日期: 2023-09-27 18:30:02

我使用Boolsleve c#创建了一个HaskKey,我每次都提供一个唯一的字段,我的项是Json字符串。

   public virtual void AddHashSetKey(string item, string hashField)
    {
        _redisClient.Hashes.Set(_database, Key, hashField, item);
    }

添加了大约数千个字段(141988)我试图检查哈希键中的字段数,但在下面出现错误。不确定在哪里可以找到更多详细信息,或者为什么会出现此错误

redis 127.0.0.1:6379[1]> Exists C:
(integer) 1
redis 127.0.0.1:6379[1]> HLEN C:
(error) ERR Operation against a key holding the wrong kind of value
redis 127.0.0.1:6379[1]>

Redis HashKey erroring out

好吧,我在本地查看过,它工作得很好。我的主要想法:

  • 你在正确的数据库中吗?(redis术语中的select
  • 是否可能C:已经具有非哈希值,因此该值最初实际上无法设置?如果值不是散列,那么调用任何散列命令(包括hset)都将失败——如果它已经作为字符串存在:坏事
  • 你在检查正确的钥匙吗?(注意按键区分大小写)
  • 特别是,我注意到你没有被检查错误;由于BookSleeve是完全异步的,所以当您调用Set时,它不能告诉您服务器端错误;任何错误都将通过Task API、await.Wait().Result.ContinueWith()(或您选择的任何其他Task API)暴露(到达时)

但在本地:

redis 127.0.0.1:6379[1]> exists C:
(integer) 1
redis 127.0.0.1:6379[1]> hlen C:
(integer) 1
redis 127.0.0.1:6379[1]> hgetall C:
1) "someField"
2) "{foo:'bar'}"

你可能还想试试:

redis 127.0.0.1:6379[1]> type C:
hash

哪个告诉C: 中存储的数据类型