1

我正在尝试将包含大约 5000 条记录的字典中的记录写入 Redis 缓存。但有时我会收到以下异常,我不知道为什么会收到此错误,我在互联网上进行了检查,但找不到任何解决方案或此问题的根本原因。

using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(_configuration.GetConnectionString("redis_server")))
            {
                IDatabase db = redis.GetDatabase();


                foreach (KeyValuePair<string, string> keyValuePair in _dictAllData)
                {
                    db.StringSet(keyValuePair.Key, keyValuePair.Value, TimeSpan.FromMinutes(30));
                }

        }

例外

没有可用于服务此操作的连接:SETEX 747712;IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=0,Free=32767,Min=4,Max=32767), Local-CPU: n/a

编辑:

StackExchange.Redis 版本:2.0.601

4

1 回答 1

0

似乎您的池中的连接已用完(客户端)。此外,在性能方面,在这种情况下一次一组是不好的。

您应该使用批处理或流水线。请参阅Stackexchange.Redis 中的流水线与批处理。它有代码示例。

而且由于您似乎不关心响应,请考虑flags: CommandFlags.FireAndForget. 请参阅管道和多路复用器

于 2020-01-11T17:56:29.590 回答