Redis - StackExchange.Redis - 使用 C# 驱动程序批量插入时缺少键

Redis - StackExchange.Redis - Missing Keys on Mass Insertion using C# Driver

我当前的环境 - .NET Core 2.1,Redis-Server/cli 3.2 on Windows Server

我目前正尝试在我的 .NET 核心控制台应用程序中使用 StackExchange.Redis 驱动程序将大量密钥插入 redis,如下所示:

foreach (var item in collection)
{
    var key = item.SomeKey;
    var value = item.SomeValue;
    //Tried Both Async and Sync
    redisDatabase.StringSetAsync(key, value);
    redisDatabase.StringSet(key, value);
}

记录以 1000

为一组传递给 for-each

我的 collection 有接近 285000 条记录,因此将这么多记录插入 redis-server,但完成后我只能在数据库中看到 250000 条奇数记录(在 运行 之后INFO redis-cli 命令)。

为什么会这样?

我知道对于大量插入,最好使用 redis 协议,但这是我现在需要的临时解决方案

原来redis只接受这么多set请求,一次处理。 在我的案例中,最终的解决方案是限制从我的应用程序中触发的设置命令的数量。

最初它被设置为每次迭代 1000 个请求,当它被更改为 500 时它插入所有而不遗漏任何插入。