Я пытаюсь использовать redis pub / sub для передачи данных между приложениями с высокой скоростью (25000 сообщений в секунду).
Я протестировал его, как показано ниже:
топология :
1 издатель, 1 подписчик и сервер redis.Все они размещены на одном компьютере.
аппаратное обеспечение ПК :
Процессор: Intel (R) Core (TM) I7-4578U Процессор @ 3,00 ГГц Память: 16,0 ГБ
код :
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();
Результаты:
Как показано нарезультаты, это займет около 6 секунд, чтобы опубликовать 10k сообщений.
Я хочу подтвердить, что это фактическая производительность Redis (или StackExchange.Redis)?Или что-то не так с моим тестом?
Обновление:
В соответствии с принятым ответом я обнаружил, что причина в том, что размер моего сообщения слишком велик(300Кб).