gpt4 book ai didi

c# - Redis HashKey 出错

转载 作者:可可西里 更新时间:2023-11-01 11:01:39 25 4
gpt4 key购买 nike

我使用 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]>

最佳答案

好吧,我在本地查看过,它运行良好。我的主要想法:

  • 你在正确的数据库中吗? (select 在 redis 术语中)
  • 有没有可能 C: 已经有一个非散列值,因此一开始就不能实际设置该值?如果该值不是哈希值,则调用任何哈希命令(包括 hset)都会失败 - 因此如果它已经作为字符串存在:不好的事情
  • 您检查的 key 是否正确? (注意键区分大小写)
  • 特别是,我注意到您没有检查错误;由于 BookSleeve 是完全异步的,因此当您调用 Set 时,它无法告诉您有关服务器端的错误;任何错误都将通过 Task API、await.Wait() 中的任何一个暴露(当它到达时)。结果.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:

关于c# - Redis HashKey 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18583971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com