gpt4 book ai didi

c# - Booksleeve redis 客户端上的空字符串是否会导致超时?

转载 作者:IT王子 更新时间:2023-10-29 06:16:00 25 4
gpt4 key购买 nike

所以我有这个单元测试:

[TestMethod]
public void TestNullString()
{
String expectedTestValue = null;
var uid = Guid.NewGuid().ToString();

redis.Wait(redis.Strings.Set(db, uid, expectedTestValue));
var testValue = redis.Wait(redis.Strings.GetString(db, uid));

Assert.AreEqual(expectedTestValue, testValue);
}

结果是超时。这是应该发生的还是我做错了什么?

最佳答案

Redis 没有null 的概念。字符串(即"abc""" - 零长度字符串可以),或者它不是(即 key 不存在)。

这里的“错误”是 BookSleeve 不检查 .String.Setnull 值并抛出异常。这将立即得到纠正。

当前发生的情况是代码在将命令写入流时失败 - 特别是,redis 二进制协议(protocol)意味着您在发送数据之前声明参数的数量,即(简化)“SET”、“2”、“key”、“value”——因为它从不写入值,服务器甚至没有机会发送“无效”回复;就服务器而言,它仍在等待额外的参数。

关于c# - Booksleeve redis 客户端上的空字符串是否会导致超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11766033/

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