Я создаю систему, которая отслеживает и проверяет впечатления рекламы и щелчки. Это означает, что существует много команд вставки (приблизительно 90/вторых средних чисел, достигающих максимума в 250) и некоторые операции чтения, но фокус находится на производительности и создании их сверкание быстро.
Система в настоящее время находится на MongoDB, но я был представлен Cassandra и Redis с тех пор. Это была бы хорошая идея перейти к одному из этих двух решений, вместо того, чтобы остаться на MongoDB? Почему или почему нет?
Спасибо
Если у вас есть выбор (и вам нужно отойти от плоских фич), я бы выбрал Redis. Он молниеносно быстр, с комфортом справится с нагрузкой, о которой вы говорите, но, что более важно, вам не придется управлять кодом flushing/IO. Я понимаю, что это довольно просто, но меньше кода для управления лучше, чем больше.
С Redis вы также получите возможности горизонтального масштабирования, которые вы не сможете получить с кэшированием на основе файлов.
Сейчас я работаю в очень крупной рекламной сети, и мы пишем в плоские файлы :)
Лично я поклонник Mongo, но, честно говоря, Redis и Cassandra вряд ли будут работать лучше или хуже. Я имею в виду, что все, что вы делаете, - это забрасываете материал в память, а затем смываете на диск в фоновом режиме (и Mongo, и Redis делают это).
Если вам нужна молниеносная скорость, другой вариант - держать несколько отпечатков в локальной памяти и затем сбрасывать их на диск каждую минуту или около того. Конечно, в принципе, это то, что делают за вас Mongo и Redis. Не очень убедительная причина для перехода.