我正在尝试使用Redis pub/sub在应用程序之间传输数据,速度很快(每秒25000条消息)。
我已经进行了以下测试:
拓扑结构:
1个发布者、1个订阅者和Redis服务器。所有这些都托管在同一台计算机上。
计算机硬件:
CPU: Intel(R) Core(TM) I7-4578U CPU@3.00GHz Memory: 16.0GB
代码:
Stopwatch sw = new Stopwatch();
sw.Start();
while (_started)
{
//db.PublishAsync(RawMessagesCapturedMsg.TopicGroupName, redisValue);
db.Publish(RawMessagesCapturedMsg.TopicGroupName, redisValue);
totalRedisMsg++;
if (totalRedisMsg % 10000 == 0)
{
Console.WriteLine("totalRedisMsg: {0} @ {1}, time used(ms): {2}",
totalRedisMsg, DateTime.Now, sw.ElapsedMilliseconds);
}
}
sw.Stop();
结果:
![enter image description here](https://istack.dev59.com/6w2z0.webp)
根据结果显示,发布10k条消息需要约6秒时间。
我想确认一下,这是Redis(或StackExchange.Redis)的实际表现吗?还是我的测试有问题?
更新:
根据被采纳的答案,我发现原因是我的消息大小太大(300kB)。