我使用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]>
答案 0 :(得分:0)
嗯,我看过本地,它运作正常。我的主要想法是:
select
)C:
是否有可能非哈希值,因此实际上无法在第一时间设置该值?如果值不是哈希值,则调用任何哈希命令(包括hset
)将失败 - 因此如果它已经作为字符串存在:坏事Set
时,它无法告诉您有关服务器端错误的信息。任何错误都会通过Task
API,通过await
,.Wait()
,.Result
或.ContinueWith()
(或任何其他{}中的任何一个曝光(到达时) {1}}您选择的API)但在当地:
Task
您可能还想尝试:
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